IMD 1.16: 26/05/2007 17:35:17 CCP104+ TYPEQZ16 WRITECCP NUCHAT.ASM TYPEQZ16LBR TYPEQZ16LBR !TYPEQZ16LBRc"#$%&'()*+,-.WRITECCPLBR?/0123456CCP104+ LBR789:;<=>?@ABCDEFCCP104+ LBRGHIJKLMNOPQRSTUVCCP104+ LBRWXYZ[\]^_`abcdefCCP104+ LBRghijklmnopqrstuvCCP104+ LBRwxyz{|}~CCP104+ LBRNUCHAT ASMNUCHAT ASM5- 008DISPLAY MET VWGROUPS METXHELP YZHELP MET[\]LONGHELPNOTJ^_`abcdefgNEWUSER MET hiNOTES INDjSYSTEM INFkMETHELP LBRlmnopqrstuvwxyz{METHELP LBR|}~METHELP LBRMETHELP LBRD -README 1ST ]TYPEQZ BZG #ZTYPEQZ COM0'ѥTYPEQZ DZCW,pTYPEQZ MZC:TYPEQZ PZN#%UNCR20 COMF UNCREL REL4 ?USQREL RELA| I recommend that you extract TYPEQZ.COM from this library and rename it to something like TYPE.COM (or even T.COM). Several of the items in this library are crunched but the names are listed below as for the original, uncrunched files. UNCREL.REL Two modules needed for linking and containing the USQREL.REL LZW and Huffman decompression code. TYPEQZ.COM Multi-file unsqueezing/uncrunching TYPE command. TYPEQZ.DOC Documentation for TYPEQZ.COM TYPEQZ.MAC Assembly-language source code for TYPEQZ.COM Assemble with M80 and link with L80 m80 =typeqz/l l80 typeqz,typeqz/n/e If you re-assemble the program then you'll need to check the values in the configurable data area or patch the object code. The video sequences are for a Datapoint 8227 terminal and there is only one of those in the world. TYPEQZ.PRN Print file output from assembly containing symbol table for use with Z8E UNCR20.COM Program to un-crunch files, e.g. UNCR20 *.?Z? TYPEQZ.BUG Correspondence and bug reports. Any suggestions or corrections should be sent to me via one of the following RCPMs: AUSTRALIA: Tesseract (02) 651 1404 USA: Potpourri (408) 378 7474 Ramblin' Wizard (717) 657 8699 John Hastwell-Batten 10 Oct 86 vTYPEQZ.BUG !HO) c 9Lf@o3 In3tdi<Nbh*`-HB@Q-"ᨂfL 381 F1@` t2Ty  d:c*őN$IP)JdPR1pT@\N'E ( 2ad2fƀy̚P 3NQa[ , >(qJc PIYy !m)3zvz(FPӓ|J0 't z^  xh=a!@`-EhV 5 ;4OAd&xe\",SzGx`^"D2%pX{dUeID=pC+kYC'pEd?J#zb.I*t*,6L2Ni` 0ڕae3KKDUfe &،m2Dpr,p0"snJD eG8BQiaM4`Y6 ,-ߜx P%HɃG!4pu ].VR8ʄ` Iplm?^."͒CDƄ23H06h $ ,n RMpVpyxߋ{Rl9<-djX<#5 Y%BCN'E^QQ#^bCP љ0tY#"r=?3fCLCnE3h0Լ2Ad"UdP O@d: DL\o%^eABYo.xfhIÃ+r."hi4iY{V= DLE$3eA(=۸!%Yk͐NHdEKSAfRN!hhSf.E e >IHYb KD&MܦL5i5fj8 @+pW5O9x,cQ%FTEpL6)&h,b=IVrZژRJHxdn˃H6el<ǚ1kA6)+bJp+4lPѷӒRf5 !lڑ&@E7a!ԩj뤈dI?ZX9E'ҁ6 lK &-lIOt&u],ְ@5ʪ/22 O duE vs*s |ҬɆaͳ\>M[P¼?0>TcUD拈}c-O2$5]UY ׈Wr `Ϋqք&yg$5w=3ʑ6 -^k$1Bs 0"33D[=1|Ou֙|5&|íRʣݰIz>S/{mlYNu "auyڝH;:Ssp`ٲ<4H{Ҫ=΂kQ^+knw3һC{;nr@*І&<ޓ4LN ڋ=!͐ C+ĕe̷ #ڻ[;S6Ur;,6`K)5bQ: `\*3T%rUr[ѻL@B*p eQ5C)HJe%zkdywq"t*Q&'kt&3dA~|a PR r(/^Q+"v9J"^C"NB`gR 3w"c1AA_8esCpZ Eo@P(WBSWoZ*f[@ w&G-50r BQ9f$@p÷n(Mr7e .`P#Óô/VZ)5`*#&(-K00EG3BiP"Q%Ppq5Y;ap!+]^U-5;B{Pl%r͓{X 俄pMѼRA$yJ &úLines:Cols:PMaxUsr:MaxDrv:ccpPages:BYE5:Limit:WhlPtr:>Highlight-1:GB@Highlight-2:GA@Normal:Exclude:COMC0MOBJSPREXELBRARCOV?SYSINTREL?RLRSXRSP>  s= 1 * :` 8!: 6 00 !)86: 2 2 ! ~ 6 #" +~(_~N +~ 2 w!55>C2 <2 :/(X M29 : C! ]!" 2 go" ! :w:/2 !i-* |* " * |Jiw !H * | ~# S No file matched ! ! www=28 * >: Z~#:(T08 :0͕A8 0w~( ~8: w~ : w\&~^ !" ht>?#~.($ (G(D* :#~ (.(+. ! #~ ((*(:#!Q]Badly-formed file name2h2|:8 (&!\,  :\2 !, \ \&! \ \!, \ \<7=Ɓo&!  ] 2h2|28 !f~: h* ~( #" * ~( (#6# 6 #6#a{ _ | : C{= :: H ! ]{= s; ͒* #" * #" !e * " Oد2 2 k:v k<( <(y| !" s; kܝ!H kkk(/6 . ! k(w#6 #! H  | !s; !" * )!H k(/6 . ! k(w#6 #! H  | !s; !" *  --> ͝r ! ~@6 ~/ :W{0(6 z6 >:6 !\>.6 !d#~ 6 ?(N˹ #07!w H | 7 --- Can't type . files!? --- Empty file!" \> $ <> $7ʍ _! ( ( ( 8?~w(0 >{ R* |(+" | !]X: (5! 5 /: ==w!^= e ́!g= 80 [More] k  e ́8 J7?7{; Enough! - you are better off downloading the file7 7> > !]ÍSeems to be a lot of rubbish! ( ( 8 46 w~DG> 46 _~#6 ~#S 6 k e Jk (>6 !M!a!p~G:9 D#^This program requires a Z80 processor$Not enough memory to run this program$TYPEQZ 1.6 ^S=pause, ^C=abort, ^X=next fileCommand format is: TYPE afn [afn ... ] [N] where 'afn' is a (possibly ambiguous) file name which can be prefixed by a drive and/or user specification, e.g: 13B:*.A?M B13:*.A?M 13:*.A?M B:*.A?M Multiple afn's can be requested. For example, C2>TYPE 0A:ONLINE B4:-*.* B5:-*.* *.A?M 0:*.C? would list 'ONLINE' from A0:, all files starting with '-' from B4: and B5:, all plain, crunched and squeezed .ASM files from C2: and all plain, crunched and squeezed .C files from C0:. Typeout normally pauses at each screenful unless the very last thing on the command line is 'N' (no paging).WJG7> J> J:> @ ʝCopyright (c) Steven Greenberg 8/31/86 201-670-8724. May be reproduced for non-profit use only.." >0g" >(gR" |gs !u[ R" Ͳ͜v ͜(> >>>7{ ɯ͜ ͜͜͜͜ rS @[ͯ! >8 * : : (@[ͯ* 9G: gk~ >2 * : ~KV|g^z ͯ|g~x|g~2 g: gOD~(|0g~( G|gn``ͤr|gs|gqK C x>2 ! 8͜W͜2 ::::_ ͜_: Wz?!" ͈!< * T]>w6@>* w}eo0 $:  : g: G}/< OT]>(* : GzGK>O+|0gr|gsBO ,L}Z8 90)))))l SͱS Fsͣ! >8 * : : ( <2 S Fsͣ* : 6{('O!" 2 ͱ> 2 >2 >2 *[: g* 9G: gk~ >2 * > 2 : 2 ~KV|g^z ˪ͭ|g~x|g~2 * : g: w|gs|gw* #" #: '2 : < (2 >2 : G: O!qy2 z={((͜7OK 88( OC ͦC ɷ(=G2 y2 yͦ>C ͦ> 2 !< !2 * T]66 * T](6* 6G̀L~($[ r|gs: gyg" [ : W|0G>2 x̀L~( : V|gn: gn " $* |[ : Gr|gs|gp]))))o{g: g#[ " k!   U#^Copyright (c) Steven Greenberg 6/28/86 201-670-8724; may be copied for non-profit use only."s1)!r[*-v -( >7{ɧ -(88>>-O-G[* ͧͧ x B-O-!!!!G:G6,q,p,(y/,w,,-G7*33c88 (OAɷ( =GyA>Akw,,-G7*vTYPEQZ.DOC "gSit0 &po9 Z h(z%y H0·s)-!CAPs9NF@R! @+ D!kUA&E7C!Cd.'#y4SXHuaZ1X 'aq( JeBI ATe 4lLƓaX :gz4-4op2Fv@b7tLav &%*3S/PDW,MB4Wt;ݣ si6 DFfM\TEZVQ_qoBP8]hpx!!F G=Q֔sF7xaiE4vNGEvE1ge1pVF(Fщb!̩&~rN91mxwT z!k`J gG!郘 Ɓ]Zj)6hx&ٸnHFaК doy!cއX(QNv EtK,qoBe1dP=wkHf| AT.ik: gBTV lFw *sH) F)Ѩtr@Fk5FIDmoʁ"(xPd/JVȟQ0iw*er9t&h5屇l|N}ʖAf{l[攁o i8kʶ$s߆ ?#FKJjfIdMXm"} 5:xuOf6 QQƚh+;7j8!7DXؠ1mFR\E\FfP$ [ޡ|v#]N 4p&GPb@0Zg1Ɔk,=P:ihޞ'Oe8buI[DxSIqjqU>'BIMS5+d5 qhH65~C HU@@Y"qP8:16Sԝ@`YzR%;(P7tQ : h2r|&q(iɤDL7o [8D *BYIYD"[T Pf9fq͊IVk,s}U )E—]yOi:ܬ1Ęe[k|>RYs*,GT]WCsx:v (J@w`)#Tz [}iHh*JFtr50.7ڬS5!2FfMfuf1UC g D) P+P 2Jm#[+žvM lq;04 \,3ƺQњZx'(+}STGP<Ԃ(KRϹ=}E =y{ !G.au XQ|Ûi3L~Jf-t:sG B(c;9è%|#ڔk Bv޺A=1%M8z(Dw`BqT,nˇPrFUiG#օγmd5)cA2)N;YRPއ5l3r @`<9iܨٕ77lu< R fR6xJ cQI`%܊*D RqĐda@Ng?ApC[D{]hrM  5T/ XnB(،bh֚'BJ;Y;`Upiruq=߿x'{S9]Vр'xilv}1?2\x3ujn _gZ҄U0DX/ {ew $|`V}==tvs( ]BGSӕ&0LCL/Ed %U0oar'@g'g(6*NtySs-A)J0JtDt&l(Rc**9Ѩ$dXCvpn]YZ-k A@MP.X^zxt.@Q88sWMmhC`UCk LLT"'A,bt3%e0z0URC-s!U8gT(kK"oL0lw #'d*Qza$e;%Qe{PQ !,aa(dBy0r xd[wuw!fLER:҄Uy8o.Ox UsZ}TXm%&qCA##2fcs#W(n $=Rr{(_tғpSQOIvY.!VnPn8e/M77 yPy` C(%z%6W!ZPD@T Z0IAiQ@wSQ ZP20Rhq 8X^PfP u}aDXxnEփӨsHsqF!**.#mw!97Y zY 4{*3"& ETA@CP0DPF@LIpNFCQBOq>12Az uMCj)Z+ZjP0ţ@a8VvZeaqIpaq""h!(a&*)* F[XAZ7P hG0 /P(I!IXQA1B2.P  iKNuƤjd-Ib6x\P5emm.|Pfz)yP03U #C[@ pHPEZaMU_ptY 1F] !PSխJ`quZiz\zK0:*v2r0U\!EQ( .D)/bg5V`'v3p.(ٗI NLJg0TD9I!C5!R1Bf:)DoUfPK*(b_hSs&YFbE2#rZA0er!Vd"Xz(B@O9T h"CrS K! 0xT(yϝ}92x~T3(;?Si$n#KVWaU7q֖ʆr[:B\ID0uUtK%4oΙk1y9>画vb6kh=O-E&䳰e23H27u=5cS ="RSb'C)qꞳ)y4nRK`=W3#XD;2TPacB<:{Sڏ$&B!;`zz;XɶNh@v8XPuDR0t3xuu{Bq9U &YS*ǥdExp[phIP(E_L\L8a dEZI_ʿRS %6B-75a)!DEwəby,{[R+&JiQ\xսy8!G2pu "-΢2tc갥lqlA8Éu0|l@/»3}"B*uf 5-JìPL'_c"bUŬ!;mّSK$=bi\^"l #ҮP-@o"d=|̅E%He^ZZ5ZCygnĻuEuyz?ѝʌ@ y B|st2 Kx[m;٠ a @]iHտFqA@6n5$ #>0ݶ"173#fKdjO+)ea> L?-( -[UFˎ ut3!!a( %FlfD!,s<'7zBE:=#(ؤoZhy#˄] I`EJ uD1bC 7Q =`ulg>V&";ѯ CQfa[yYS"䧲YEBI Rg#b(KnacYu^A;ÔTCph0yfd !K]is /n%Cy\D-5!8s,7/@w3BRG7fq2SR('n /!StJ`wN$r0Ul B'!@HN tϬKnvvV%pNG"[picgfse Ue%?!ng~<w0(Χ{r5<)^ +d/R{0 O*ы7~?uK 0t.rbt95@2b/N68mmBF3N>VM #)m!T0kFFC ƳVCEC/5Lf5eڍbPVQ֍WUY%2` v.](v݃ d)S,,_CerYd\^a M׍Y=m`Z.ujfi-xbWsՀavYeCHh|#h16fNc&1 B&*Тȅ^f]5B ffhF)P[ ښGQ%:A&g?R EQqy[PA Eۧz07 p4q (6(''a*%77Yp 69 k*vTYPEQZ.MAC I fy  Dl2" ũ F;b@T,Ѐ1 %Rt2'S8b9 Si(h7 Il6 HFnC)e9Lq" M[aX '4&i0Ӥi@UfM@m:lf6 :gz44i)9o-:c,Qt4., 7D fn.bX%e l7q~ @c7xA\Ee]|:YFYGbFqo_e5FV' FQxѽaFghG 6X\s| B.^* PEC0If]qtAi10BzJ\j~VsGV ؊(a_13n_mGqlQ`i(9DTXB0DdaF&hayۺ%dV^ xbFب$tV`aQFJdFx f#Wy'>bd 8շ !IՄxD-EePBbQc TާZ-)! qc q&pjmzV±Jd A8z`Jaڦ/F-,G2hP'# [cEs͚cjG^cF5]BE1 D(puD™râc@5e¯{!0-pZXԚK"H*B0N!4" !gXc C=Dl>"3+Z^3D6C,uNΠ"5]"| aŬXhS;A0ĂGļQ3w~r' rͨC YF)4;㶙WL4&\ \K\3mBbb.ZB0i6'm_9G^dit+ L+V=Ua""@ZW<32tN+xx_bJ_nL`\ @H1|,\TʩWXhX 8pB(L|@fTbN1!3QEOoG>b Ɂ%VJ4婾 wmm]Ц(UvXN27 fŒTZ=/<v5 g Pre5,^^C uCqD\{sn6@*XdRMA 떃J^r`~v5FBM  AjhNq;"Amq9%uX>'`݈ wol+[ף`$Ock^j Y7q Й=p<|Z1'ِ3fUY^ z.8arf?*[3!2Acw`$,rtaG[XSA & N=+t݋w%lbhD4V:4ibi&wadA78etLFG:)r $H#&qWg" ߎ-{yH 2t'aP @ y  &;/dOzZ%wH:׷zҩ9i71Kl'99 ⷼV[;%<eĺ~x)|Ty*vUaamj1110-y1!Fw!s~&J.R1*$ ~ǁFt6Aldg0 J4|a;'a}};_'A*[#Hg|:1GGXG 0 !s@B>z,AzF8XQ/e SAZ : AUC&RU0QPLL=hq?LT/5pB2xl0h8@{QhYfؗWhRx DVkaevY0bJsu5  DSkeW i `c(ChʌE.Όb1!#pRH֌+8ETXXiXM`@CNO \a Du2"@/#PT[R9P&c%A!6``SlhsW&ii50yYD4OYv;ǏaCXCz.`SHi<x3"e;!4u˔@C01JN.ђeٕb8uDJR1awgB0l{CPR@Soc &~aq2T#6T@MoK)hiGE 9`@/b7nmk99i_O'p'1lmddFd}si0MD V ɖi"fu6x&bPXp7 RgymPh[+e W9PT3;CA:X0D7>1B9DLyAHIj#p0 e(pF E.&<9?:(`MDUpn p !8ɉJ[ [9k)eY(^U(|Id' L@'7LJm2lQ LxNzx'mTt㨊vwW`_P-ql nVtPs*9ѪI2tgcDm"I饀 'g@D v@ pHp-p@xu6<:p)ӭQh\*ٲL g)jCP(n8nP.\IjʝB Px0n&EdFKfZ#=/1.@acF+yGߪV=a5y>ȉ==` qDʻy;0)@w4JȞJy7ҹ@BЬWle60EARwM{PeAaWO,wRGjR1>Q-uhX\u9=!"6Sk! P%u uhGT-Ef! yBF-e0Acpe0 !N+c>g)8I37Xn^$ cl;aE!I(_;A'IW[X@kq7b~*\9rxK@a7M!eCʁw׶0-OIjzˁuS}&G{)a>Q2U ry1[F,7 } b+C\w(<,7->0rkQYdT)K*t{KJ{7q@d)k4ph2K:\x;`xuPN{x, z6[(FHJij LOgAE=R_(z,Eq|2131Z*gD9W9c9U4mK96n7 Lq:.?ai&Wω'>U9=!w|& @!:6B 4Q>oo71PO`I@E*TAYU'P]c?sqvPP!:Xدs0e mXESŒM#QKjo00q""Tؠ'Br}͜S]{G ݽ`?OHaut'.RfS5pcS==-کݩNM#cFgU2C6SU|ژ{r_M4KN'R5jF^kzN17$N! S:]4Ha^9<&)ՑE~ݼԝ ͒ͼ nQYǜRj]81u aֿ @o=+niP1]p AZD&kz[t A,Z]`a_Be+(l 1,T}VXdwO>LM@ ‘>M7ȟgǁ6A0pK50,I'A_N &#xQx I?+7[,XYdASHlciP .$Х/cW5MdqZMk,_nJToz=WFyRnlwɾ9͒.o,]#o2P5VW50h8!"GX1K$6&6`+@a WW3QMTn_‹W6OR7IioCe79N(d6@KqrO~PW0,Po<=TC2r/Tbr@,u >bp _j?CӘ_Raqmp.ΊK^S7ס>" KW.#O*or<*n^&䒾D 3"c;E;nn +,`s>AAip"+ېM(qhQm478_ϐZؾ_Rmi`pb+78IwVٮWFn[-%qbPfbՑϊeT$2q<i{#0,"yŗmUYb#K@A$$*BE/JRvm zϖF{ TS3ksپ -`g0wu~pi*R8*a-)(*gV P nr¤5 b qٸ)%焢 -/v6hM W6*w:R}OfH3]ձ.W=AoyEG KpCY'Fq~5X?څvHcYXs-39b7}dq ee^WIԟ]u eXIhC@y,d`.{+0nA.fm<-,<4v'͏Ww٥7:2/y@Y+D&kF>k-# M6QO4J4uTiѧhk?P,rkcYg{md +g\'WJ3b0\qQRe89jsq_ X?e^YQHk> m%lBė$*f+s.Sײ<P+7Vz'BA}' Vmz¥7Yو0MyɉО~4)E6yc8(iQIkh+?01r (I IsDYbD+R*\''~yf&wz 9,CYى7#D*J sPH #0%V}Wؒ$IѪ٨4y e_JDʛl Psk?Y*6A,.0<Jz?yrnPΛDQG6Gr2APt'D8WV!j8`fΏ$o*Bv sYdiUoՀ;LP!;eJA!I-:?B;!2F3C"sNs4Zk/($8FLj+&#AKƢeمk)}¦buivoǔVd@/0(-B;2_h?}Q ^h7v"dBL2" IF!i$.4o=YNajpb+4#HDIm I8wjB=czY:K>يϩ.L<`[1"TIΡ࿦C}Q8Egv^[S)w!x?5Es V(5)0ݿDj|llTdzwP W+ZA[m ez}إ` ]6h6u#%&.8.vw zդY@iEF1UAC (OI "Ǭ>DeTy0HU©WQ> !By..xL|&y$} raFd&y9xu< @>xR'`KSKR)/C c f`lp1Z<=ƫM .ϧFATq1K#u'_,!9bBFN0pG_|l2B](Vl8DJ*$E%p<*H~GN96R!"R2OEM?3R6)/=&Rm1~rHa.og#5!6tk## oT&o"h +,]8.ZjqTÿxl\) Jy)$e,W23''m.ZdZE6l!  u+Mhʅ^Ahsd@URosj3`yR'`NiѪAg}l2пc}6-8QWdeQ\kR'`Fm!,^@y@vȾV_N5q?8uA3"w_I U@"tgګ"ǨPv|'J/OiU0^*xuhxN*$ xloYpx>*cU]<Ҷ]ԃI>Ux1T𵫙D]6]UWPZ;?_NCo{MaULXoB8T7!0slAs U0Z).{d* h@dΈUD%gI1/opOhxme< m^a0cMlM>*9&yy >b%lVn@Hi"n{mx@1Nx'USvB'Q)kQ*JدP+ȫ0r%c 9sA@!bW 0pPvy+#6Vyx۸Qε&PFT!7AU=ԅROގLszu@Y#IĄ4M?[І6 @57PЮogҝ! B8p~j p21 eٽ/~4`YS'@-!i=>0fF8o"5 } ($I&i96lf3ߥ/^A'_<B7Cg dsX]:ϩ#mKQY*̵FyNcӃ j ̵F@S54Ue?J?1p* I[;".x]9s clY蟀F cdPKUo,)?^cD. (.@@eA3u0L_'*31 YhlHPĎOda!iZMxwH6&2cR"ΈC@nؐ(WQ!+,"Pw;,NWhWwFsh;s6AsB:HC̽4szaރQ hfSPC6 @g):)S 9턑98d;DsK ),DdŰz#2 B0u8K+!X/pvWNowc(W,hvQ<1ၺh?^@LjP?몒WJw{  xb޵¬+15"3|.ڗD`.ah'SQI퓿.ʱO ,s ^h8&36.22 h+א sA~qJOoNdhY y)'i7A[hvHkh&eh5d0@eXW7"4#jKω80mŰz#Ŗ"A]ߊC,2hED!|@C V y.{}0&!t7oќxqr)|6"b!n_ ,z+r:f@b/F@w}=56+rAp.I?4:  Ka{ATF>#AZNm8`[rs@M('wbqJ.bGH"L%CN(={!xϕH,!7o:lX?[cywS4@8,ȏ,X<a^w!gᐈey:ؠ&ކ<irCs!nh'ũWB~%Oӎ;g/ ӽբII9WS n >*~*~*~*~*~*yV\d o^N*<~]< U<ה}A(ysQ-{1J]\0aUeM.~`oUefRz\'M A+,>bryp+0NlT\y7/"b zH89L%Kp?*cvPe..2} (>Sr#}dQe1@g0FE ,Y4QTH1ʲ"4ЩWXŤok/b\LA]bYebrS?a*TZ4T͑>6mKpbXjzO5jo2 Q8Tqe؟KArV|_}^,"V,o3cR[\"1q8n@wC=w,oǘT.WO-Be@{$dѭh o2 yij(+,gЩŬ 6F(PC]t=ƫpb2 oX,9fw]8.Έnbۤhlft> Lfy&R$B{UPeF"5L*i5Sձ0(ŗ|ZgO#{+Pk3؋s iyL[",*{)-Cm#C 1*?~Ż2Kޙq ! Ue1Uu 0a/Iŭi#hؤhc''/x+J=džskeekC)@'sV^96R Y5~uTii5>@/ enOֵS:2 `A[Q+ (uhiD~R/5!B] (4\UTpOA= =`α?h:!a2n>YQ+%D9E_gĹruP79(#)Gb@y(.ZnADޒpwj=mJ~L5}KVvu@P_Ox ] V(nO%bPyQxr4Nx2a#I{ؑ^bqHUP[BY /*})! " .`f#7QS5و j_ӹˇBTJz0>0XY~  q֮WnFD+1<ĥwXDow= W+kg˟#JimjR/{5aT&"5&,&FOS#1">)?BeP t |ӥH1_WTwϦ%?XRj 0p68C_Ia?"& KUqÝ5Q^_.Z6nhv_?9J 4MY ǃ_5ekX(it_e^hS?Fܦ 56POn[_Her;@t3Y~/7&^_^h+E6H_kaT@o$( Ky&Y4&5t9dݧE{ r 9@FN$B9?^Ue3;xl8QOM:A"AwTO؟D!7ֳpuE6u˃($h?YQHk(a!1_98'Te2<>9K0QT]3Fw(HcVgphޤ;!V!?FNjW'"Q?qilRI =J.BC?L[+.qNs<\w0"c\F nB4먷{{׊Ώk==cYO&^5_2%?*4ZĒ_iξ$B٘etDv5FS0qRbRZK֛P$JG8e>ܢ}'<} qX(58:,(%t i ZЂT_iq-z"OSJcY5Z!-_e0z"}8aV!?FN?eTIC ΈCW ӡ={*Z7vpuE p?x%؈;P.O\,dj98<&0b˱%0QT]4|yNبVgj r Ӥmϫ7*ƶڷ/6p$[z݄ <\MwBT!CN~=hv0tt۷w<\wʡ*r*4?6|Z[Iw½Pzc<꒯׊Ώ=cYO&Zم29Mpx2ZĽ1a3D *nO ǃ_,FS`[+(򎊡eo/ W^^2@uxPfP({B/.SAZ!2ճh>`->"ǮԀrS^58bPQ/ yXbԠBDdJ?[~uX٘e A-/ID6J[E q2Xv1>k{k=Ε"*E}upBSxLu9s- "y' ukm/ uE܂9lBO͋H0'J+h{n$uW{ؓKPp'{⮋~=}$AQ),0fF7vd=w)_TI'S<9̠,˜8HADp$Vxw#^m9x~_iRI)FðL1)J nm_)$ '_V!,꬝9N%$k=dY(~_R+h45b|#V^B1>V `ߊL;U}˲=T,iOkyw`rAY? ;o.@yehJmŻ2㺥_ 9*| >7'BE=[PHe2*2xmy,.n8nܱ((ARp[*bRy 5w2խ99ꐙljj9.25)sOmjH1X9RYCVoz0PlO~J4M'B oÏ瞌"*]1>A bCb¦buZFG1"= 2|Ӄ adJmŻ22q"~NPXI^ge1Tõ|<{&!!78#h(.M4dm@,s -6Dh6GQ?P6k3(7/9I8s4@ 9$)kaf$*kDG| M,ӇқXa]!L[-h+hӽ/hRPl"Zs78afD1(d_6#Dbǣ0BQu08o&Ym*]m;`f_5mxW(,ؐf:ݳN(;~0'<2lFnKMlEs(4F^7-{wfeSB&d!AZ>X[~u ۜ>KØxK(14Oʛgqub,,msExAiSȵ's[5}Sfs48Vܱl/ӈW'hx9q籤)7ؖz_C`iIu$rMqR72 NFNECRɁZ$QhhqIЬĒs4(cMr [xHV# yV&uZDQ#b6qX󾋠TwkΟ:FΈC ?{sunr,VK6مn(W? VϠ,8!5Ɖr>bل0ukXU >BY(We6"s` 9Ir,n>b;+`Êz;UХl/7Sep=Хl3"^tj>Ch{; 5>9~ЅVos!?ԃIEFɿ1k%7ٛfgy v96Cos!?:$C|d$؝ч@,F";[L`,p$rʣݵF0<v9q+żF'z~>ZYuN{C},KÖRPq_22{ARPjeVDZ"Bc'`?kSw#QiS[~uĭ5Se)C6`bܽiEoa@6Ż2 Qʾ0~Kd>)B)NC,)LsOI[vF.X`PO즙r4&-yZ+#_ͣ;/T1Vh':'kKIDZfr""ƤHb#;x-#1RAB-AD_~ǼUhrm[ Y"P˜^@_YqDDA1^*\k zK#[~u_z;Uļ;+A5fى->benϼ<ZT]r e^x,Kø>b;L;y~VE3"jh?opA 0Z1zgɸ)$y!25 mU)uPBe dXc}19qM~q_q pi.DJDO*$^mã%Jw"c y<:&KBVq h./ pAvݕ?O*$R."m_})0o, rmXJFBΕ96]W>rh&Np"5el Q?Oښ֦~i(̥BO։'`,>.[tgɸ)&PyVyja ͏.XPvf #R=ł:)C>&T1h89-P{@ hAU,TV鐚3 c =W(g"8(_,/c*#ET(ȩMfѪQ xV#8dJT>)! ( e^*^}r]m! YL\ZD;STوp :TןI hso Zjo7P]}^,z|I{0u[(ꕍ#*m#'{k裥^Ea.vցp5DM}k+>!!LW%+qVxJXDD=#*.:iQ>t`k-ce[A 8`k!p;qy`d?x#[D7>^@(`)>#exV#:*!b|V1wSh沟ZRPT;$8혬zC C0Cğ3r!78Jqմ4s!?rb ?!78B*".\G2?!78ȑTdsJGX0Hg^]F% 9Ulٷ{&s2Xv`p#mi}ߊDTUQ/@!B$]d['ErӂqcD!P &/>b;%=SSY2Ēs4'鹟O! EY 7E&R-[̮ ;%Jr'5&ZD}wCO 1*(((O:=/$5rvtnO @bK *Ss!?>$9tzKձ ZY۩/,Ns?Yӕ Nt5Lis_>$YqI٩C*k&ָ -Kvi( R+>;K$$.Sjb SZ rv|k%,ωJK;ʌYMwtnΨ@A+11 "He5!Jaz>&g vʌ{A"wtk-wsJ\8~_i缮2]M 0jBEFeӏł;}wtkΈH?z;cDF؜  =WgwF𩻦` f1*gwFl10 z}$Ux6WhX9Ek9;!(Z2 *Mz¨w݃rÂ.qYx ,ߐwWPKÓD$Y8&]8X/PpѫLEω}ϫޗ!HcgqTD0q Ż2,֔(DuE:g~+[!;Q ]JRo,ނ}7.O Z~_eMx7.v5CoTو^adӑr,b:bhou^1z:jyeJny%x/cY@iECoeL!_{bϧ_cAi9 8L^@(-$8b3.@'E@X@CWf!񖚧!Եg2V(d?&k씧}b3SbvR+4-̠,b3ʾ0~K 9I8Qbv_S(~_YϬV_-JL \7Q= 'S<d\yskw46tel!pҴ61ѡkH JD6ypdlKOBuDDۜDLLBNkaf#)F 8*^uļ?PNGIOXϳX-+B!yhl ,u=¢Hqp19◟E&):RFB0ͣɊU5>b?łFN̒Ó߼E|iSJSh1Ü7߉ #xI<:'uG4/@hӐgk#};~bʾ߅Owd^ JBh,}47ѴMw$&SQ@"3)B78u? YLm@">s@gh"*J +ʅ^U >`P^0=z0=z@=Ţ (pT{1  3 @4 P6a113@5`79 v6@927ml5ɠ3v6\7ml5ɠ3v6\043k &Հ[:aT@.]0N;)ix5b_|q(M 1* 2 r "$X;)ixcA]jg@/8Fk;)ix/)ix10BI?1*JS%wSA*$Mfn?)ixJaƒJuC/3x33fn?)ixC > AIp 4-$*B5*S  0?fn?)ixNM YhdEu4@A:d4Tٱ'wZmfnB¦ 5zLzZw..E2J14P,)ix<*mTCJ{S$S%M?C:;)ix3fnT_@.`k #Eq{ fn|r K\('wb9;r `s}+b͉`s p~ 5h~ؐf:UqE80bgYL%U6:Gs>Oe|LM5dz4KUܐgpgzc[SjFo>b+6<NrQ\2?I9-K3TR6:ʵ ;?Mwj`tؐf6:žo`'?}?Z99N׋ex+_y<:&M`s/}IV"P;xUxơk9i+V"Y?9kpukX`2`ux#ƨ)s/}~X ,`sh2+%iIN:m6Ɗʡ?ѵPNPCp&MhDZh'V"QIaՋpy^cr!7q1cWb%(]uVPV($Ax#8ep ?g8(rsX`6;rue?*P¢(RT6l0 8cvTYPEQZ.PRN IH- 1ph EC)1$r($ Hd o9b7%1 p6$"BiR,b1Iy.  za4I#ԦaRCg=!HB RPEƃZ]F$*cr _D'H`5tPdbC :&`1ȤrN %LC1GvaB -{tsH3] $R12={Ȍl  2B;& P)J^H̉ʕ5l4 dAHV{p7\1,AI$S1q_'^E( hDR1 (yDA h0D`8Lj!H97fG^*Hmv hTD1r NQN@ItKACzVC[0Yl@qTplL\*;tR `IL%m bbbbOJ&Hr™d`"/9GX&cސ0db7DYҿ @D_5Ga5t`M8D$f9J&xh'"@qHxxDt,kKpBpG:x5HzeHj| cbDA6e-\&cju>DP EÜD+ )[mȜO0-2*K9إ)1ʉeУZ7bHf;J !=#I 8euc2K06ZtpVT2SzI 84t'9P=aLR"j`D HRTOy)xHj%s(Դ9(9td = %ٟ A00v44Lܑrš&#r* !:A.2LQ ,B BR!Eb0Fc$ WI[0%Kl˱c0; Üh$M9AI'*4m iEbtbBUR4(bT\3xs/A (N*RiPKr !wGy1w-uSi[bBm}s"yLML‰Lg̖Ya<W%ٛÍ+"@:.jO9M`cHIWvЃbOeB^7nR^k5NAjJTCVǭ֍I^gX-Y[x `l9 )@hI1)΍v͆Jg-eArSԑS DTEXU9 I2PB5*!h:1Ht2e2FS@8"@  "Ѱ`- CApa< FQp9̇S 3Bq-8cI@u9Dq.pE!E„!jwiHE'0 9ȄvRamfG@fGP 0!n=J0fEͿfFmx *ͺ@!S @ڷ` Vm0Xp `fՐ- mm[6C7(ZVuFsYr3j @2XX̳Ѐ͡'0@~f݀7 $,x\ڦgap!',|c 帠G>1sqYL r>1s3]8 vb?XX8 o!]Xx:AX>S6Xx+lg!XpzUQ ͫ /a`t&>@@`6@j|a`%rXSx$ap0Ax u/ ByP>@;V" #jŅkn 03`hY!Oیc,:L>KCx7Xe)=]b.) B0=66_iO3m0j5Y Cc$U@X8Y#6x2@ t* ͲØ  ׀@W6#,> @EFX b;vuw4\>9iZpAg3}r@2`ͬjpU+9yzjm >1s6Y'0@~`fF:` #3ό`w`@X xeX uh2 e!u OeYD eSvh?B(k2Yn']o䀠OvH6@ d^2@ ͇e@,H 6@JP -msl-H f0Kl[-+4n[,˅dXW+enYu`\- œȩȊj1}iꪑհ 8gCopyright (c) Steven Greenberg 8/31/86 201-670-8724. May be reproduced for non-profit use only.>so s 1:֓0Í :] (#:~o&~ *,~/ $,~Q(V(C(Í 2 222 :  >/02 d :l2 \ͨ! " (;8;!" 1\* # " >2 \? < Í Í  !\͕ ! ٯ27v 7(Qd ͳÐ d  ?   7(..( 78([ 78 77 ھ(p72 7Ͳp: ! d S >D͗! >8 * : : ( <2 S >D͗* : R{(*!" " 2 > 2 >2 >2 7_7W* : R(7d ̓Ð |(g!9z(gk~ >2 * > 2 : 2 ~(#V|g^z ˪͠|g~u|g~2 g|"* |(g: w|gs|gw* #" #: '2 : < (2 >2 : G: 'g2 z={((787(|88 (O͡ɷ(=Gy͡>͡ͷ!f>?6Zg !(~̀ ]#1|> 2 !< !2 !((66 !XX(6>2XGͦL~(C[ r|gsyXg" [ |X0G>2 xͦL~(: V|gnz(gn " C* |([ : G* #" r|gs|gp]))))o{Xg#u" >2 72 7Ͳpu !! 4!( sGEL Uncruncher v2.0 $Usage: UNCR [d:] [d:] [/Q | /V | /C]$ Checksum error detected $Not a Crunched File $Invalid Crunched File $File requires newer program revision $Stack Overflow $Input file not found $Output error$Too many files$Not enough memory$Prog req's Z-80$ ----> $ --->$% $ $ ($Unexpected EOF$}'C~#: =2 T* .: †ͦ ,ͦ ,}2 (!7? ,? \? >: ? \? ѷ{'  8>( 8  g ! ͕ :(  d  ($: #?  ? <( d  (u 7 ? ? < Í x : Upp? X,?  ? Í ?  ? {/<(G>ͷ B%D8b I  ? : u * +" |* O "  > ɘ!C#8RG:Cȸ Í ?   Í Yyx/Gy/O>j 8B= !" u  ?  > ̀ > ̀ _? d { ~#( @̀ >:̀   ; >.̀ ; > ̀ ~# ( ̀ " !" ? ? ( * * ƀO  w# " * #" * #" ! 9 ? ѷ(   Í : =o:r * #" ! 9 : r  g [ * " > ̀ ͓ g : [* ͓ > ̀ ̀ * ͓ : (A* [ R" * [ R : 8}2 < >2 * " * " !DM)jJ)j)j)jJ)j)j)jK  <#~ ̀ * s >)̀ u <<<͌ >k̀ >2  >2 6 }6 }6 }6 }: G(0̀ 0̀ !_  &Do it? (Y/N):$^C detected.$Destination file exists. Overwrite it? (Y/N):$ in out rat ca cr ==== ==== ==== ==== ==== $   0 / 0$.">PgR"|gs2|>2!"}Cv C(>> >>>7{ɯC CCG>8CC͖S}=\ ͱ !>8 *}: :|(=\ ͱ *9H :gk~ >2*}: ~L V|g^z ͱ |g~l|g~2g:gOD~(|0g~( G|gn` `r|gs|gq x2|?0CWC2::::_ C_:Wz?88 (O`ɷ(=Gy`>`!ͪ! < *T]>w6@>*w}eo0 $: :g:G}/< OT]>(*:GzGK>(P +|0gr|gsBO ,L}Z8 90)))))l7D ͡<͌ >k̀ >2  >2 6 }6 }6 }6 }: G(0̀ 0̀ !_  &Do it? (Y/N):$^C detected.$Destination file exists. Overwrite it? (Y/N):$ in out rat ca cr ==== ==== ==== ==== ==== $   0 / 0$.">PgR"|gs2|>2!"}Cv C(>> >>>7{ɯC CCG>8CC͖S}=\ ͱ !>8 *}: :|(=\ ͱ *9H :gk~ >2*}: ~L V|g^z ͱ |g~l|g~2 WRITECCPCOMWRITECCPDOCWRITECCPMQC$CCP101 NOT3 1TP!<!H!u!>O7H2F:2G >G"z<2{2xJ!G>]PüS!M[<[!(= H9n]HMH:92 P WRITECCP will write CCP.COM to drive A, track1, sector 1 $ System tracks aok $. $ Error reading $ Unable to open $ Error writing system tracks $ Error: cpmldr.com is too long $ CCP COMReservedReserved The WRITECCP program takes the CCP.COM file created by CCP+, and writes it to the system tracks of any boot disk. To use, have WRITECCP.COM and CCP.COM on the disk to be modified, and type: WRITECCP Simple as that. WRITECCP was created by George Peace (sysop of FOG system #10). I've added this short note by way of explanation. Jim Switz 15 Sept. 85 Note: CCP+ and WRITECCP are designed only for CP/M 3 systems; I've used it on my Osborne Executive, and it seems to work just fine. CP+ and WRITECCP are designed only for CP/M 3 systems; I've used it on my Osborne EvWRITECCP.MACN  !"#$%&'()*+,-./0123456789:;<o=>?@ABCDEFGHIJKLM KՕcc _{pu:uo)VnHQJj21BTqT_BMjMw ^_@SNшbԊޕO ? nc\bfVpU 0v&Q:0 .\<݄N3 CӍ- 40vM ta ]xwcK:0 m.$@a]fa%tf r4 iA(fg߅u tav=iA81f!t‹tYXXH4ÇR4{zƖ$|$4mhKрkgw7$Qo4R4G!Ꮳi/-E1%G!aa`Mb@#", ÒUhì!y42 =+5Z* CO.'h:#aH8h8 a> bQaSLտ whXj1jFG`$}R1 /EhHS  w< {A]1z!yxX8EapQ}Y y WMIA}", /^6:)ˆ HܝR4$ K=0)KрkwKЁN3, ECzNXXx 3$yphp0F)x$ax`nv%ܡ'aW#):ܢ3#ʦMїpnʦ.)\1n@`. ~n!P6uXq!fLJ(ܠ'̡)1bQ = 7Gp Y(,|p C24uN |>btu",+zg##apda cJ赒0$xC eS Cp{z 1z!yhx$@aDž0!47t' ) C'hx$Cs1_BN4\Zm$ ', Ƀ:yy)%0$yҍ*@Cݨuµ$SkR3Ds°: 0XtV1zenTnTS', 2Z ?al:ՄOJͰ4\qO(m< 6Kh al0\MX<2?FhЏNrL AXOӃuZ k^!yȓ!ǔ`:walꄅa Q0uìs5atO<4Fk&cCS=4yADˊ^+:$ ËIuU V;2aa!4_{$ /iQа:aaP @-K (z,UX4)J(RVErN]>9wt1#$CU\kQ8. 9c8 @X=Ɣk%a%zݨ!y4Fu GhXB pk\ԙCAGR̄1Rj}tn0&D͊֘VoS,+%Y ~oxpW6x7 O×>]_E?Yt:t}G|֍ga OCj\)F_6t:_`>hh.0h8bx* ~!whhw MTN3s-1@DhMqyCHX8, ~az?_ ?0 0 0 0 0 0 0 0 0 0 0 0 ¥+1?zŪz$^0@_)!@)M:\@^>atjE.O | x(1HK= ;i0Xtbŀ| [  > @Op{/(?f^\̗4C ?N3Op{ eS;p4Cinw@/Op{/(4Cin}:(in|فN3?}:(>C@bpfini@y}ڇ{@y:(^8PޟN3> r t!Pwa@:(Op{/,Z t!PǼʸ ɻ@4C| 0oceEsse 9o(v]Xg(fᡓ# JAxe 4 (note: ROOT.DIR must be in the default drive/user) DIRNAME ON Note: This CCP replacement eliminates all resident commands, such as ERA, TYPE, REN etc. Use ERASE.COM, RENAME.COM, DIR.COM, and TYPE.COM on your original distribution disks to replace these. You may want to use some of the excellent public-domain utilities, such as SD (instead of DIR.COM) and TYPEL (instead of TYPE), as I did for my system. This should get you started, but be sure to read ALL the doc files in this collection for more information before you attempt this mod. Jim Switz 15 Sept 85 P.COM on a _copy_ of a bootable system disk. Run WRITECCP to install CCP.COM on your system tracks. Modify the ROOT.DIR fi CCP+ DQC&CCP+STRTAQM- CCP102 UQD9CCP102A NQTACCP103 NQTHCCP104 MQC_CCP104 NQTz CCPHDR MQCCCPHDR SUBCMDRUN CQMDIRNAME COMDIRNAME MACDIRRSX MACLOADER MQCILRUNHDR MQC LRUNHDR SUBRELHEX CQMFROOT DIRXSETDIR COM_ SETDIR MQCkSUBMOD DOCSUBMOD1 AQMSUBMOD1 HEXSUBMOD1 SUBvCCP+.DOCT o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSmò. \JovLW$I! ōMNfdؖv X?M%I}vK.·|̴r@;!E}T eatބ0CJ 3ōh'TdT7!]uv9]%bCNbYi WTdz`K&hB*DۦmdvRbh'Ox%m )}*9Eka+ 2k3p@ɒiXUR_,&>맩$1ӵ/4hI6,lOfM +ɰ]iDv207Lz}'AIvB=&a~Jۦm0OJ2ST1aetyws|r˘=mò!m{PV𵊙a ni'$xN. ćډAoiD;!HTz@쇭H~mX6~T h'>Jo@2L|dF_;rH)6,njcm6f`lFFra1}T0qO a R^6mx脜l*~ōh'&}ZH[Me` nlE"mò r-$P]d*Q'rۦm~7O#h'P0qCRTulEj!LlBmX6Sp*U% A2y dDX?M%INhMEaf{2d') ^kwx ӟa nai |̠@oHU *چeS]Rɛ]s۴_f4 N]o_|:'Mův@۰lIgxQ}M\lCs'F8. VS T_(U4)ϸjDmX64KY 9T*h'j*Späs۴gv ]@;a bFIF۰l|t-'0u{S䂒 CxS @۰lJ2M zM%icp1 =)N 7XNibRh8 )^Q]4W+>yw96,eN.&ǪEʏ;>VM.۟P* ft#j8\K"nHC4^I WTofh%UN }?_ >D3 fI >UӵP}M\lCǹm3 vzÍϤvj*;5mq;`f F;$@쇭p# c*:}\}Ҏaٌ}\w?C'\ 7L2z@쇭_?`A۰ljDzf, &jhk_zA۰l^g!hISpWG0Q3|TĠmX6cp9Jo`s۴34w7\`eLE>Fl1N_ n|̴ &:et}&9T*yn:Ý$CNA! SAJ懥!P]?H۰lr RՅ`/A(g\'|7vB۰lrH7 $#'_%C'v|1G>Zx{{mX6w7P9T I M b3 dS+a +bT ڇ(q7lWzK ݛÑaJu:! U]X~T盛GB U2mò-+X] II]S~J ֨xv O jLlBf Nd)HU mòypP) Tua=a*+UIxچeS0aq&}af{ |̤$ɛ]ȴ f NA;*7ۻ{$6,ɛ]S)l)aRs۴Ǐ3|KirAq# ];vU!i U2)hͻ'8yr<_ogiD;a߉ DO *f _KF>D?H& U]X'\!:چe3y T&q 72_!] >fM mòyNw"B2&dz[l &t-c7 F0(ͻ9yr<6,]Ag7~޺>f;h';U6,Ip'X]Л"Q% JTua=DچeFHJ2&ow!3RU P]R&ow!6,풑 k/ 7OiLQGHU%kmfx!>2JKC*>?.gޞ_a1`ߥ6,EjbP0  >yH4LE*ya;>Bq>+ To緷gچeb-}N -/緌|~#xKmX6W7xM՗BN.TS3 AOA2T7 >mò1;<_HCVM\ ƤHUs۴M۰l:ѕ)^&M.GIٮ&)^ :v˜]<Ûݧi3o^mچe(vBmaa13WԱY2>fBi4P0>Fl1m67/pw6mòy;:N]US3m3W̅s8JUXČ3x<4N(i|Xi\3اRplG҈v¾)lW×m7/pw6mòy;:njvBo>k &턿v"B2&6>fzD`h'D?nG\c6r RՅ3hk/eEwh'Afx蒱OP}ovͻ1sxxmO٫dԡ L>fZln}<o^mچe(vuNwF* 3iH2|t-'69WvRx?ܽwO3.v@lqZN>3.e/7e+LALcf\޾cxOۤqnywo^mچe(vum\ǻn>|i;חVh"rwsʤv+Y,}<ӈN"m!ѱ+|ou1]|]J$6M<<,y ݴM۰lNrjDE xE;VS&%ENhх3t8ܱs۴xsia<@dS+՗"Fu1JU4 B3jDm4 Wl5)anv<<yx:ozSmsˊTM>iw?Qf,PGN6R$*midDZi7/pw6mòy;:|)nOq>x9\cWBW-c*b3[ׂvɸEX]O篅1Uஂlna<&?=Oocp9+ +S5hMvyws6mF5+1Cq>x >P0if xct}ja|;~ċI V¯g^ YF7 ~JۦmX6ߎ|9k,~y&䐮jG|s۴ _>TCoV_|ղ#U~N!HTچe3"D?|~/w6m6O@"zK Bh'g/>|缻]w-6`3'ōOsI߅'M%icߥ18S/E6IF 3×vjnҵ/r%$oMo.dTJa16m4|]].Лazbc_  D5+1M.ډKA;oݵp]x巯>>wx}e|m\ڥ*x巯>?w?ۦm>ǟWx޺6<.xSԟoZa~Jۦm0OJ2ST1aetyws|r˘v7CCP+STRT.ASME  !"#$%&'()*+,-./0123456789:;<=>?@ABCD n?/ec[VH$l]͚Md7b k2ϿZrSf\/8wF<'aP`T a^@$ג܀[H$H8{*p~]4i&U!a f%#%7HP[ԋ0jI%U h&0jxڗܔl٧Rr/ßӿ%OOof&耚YpNXaBPrd{}l/6 a(OQ Aɹf{o7kHQ/B&%Jt1!֑'av{$>Qv7kgw` X) ˆ~` f{on66 "T_Ykq 0!(9an!˧f{o7k "n!O8jmU^JgW6GĜ E:r%nV/64wL#fD>ƒf{o77ktzOpݾl&a3:fyv_\}+oL#fD>ƒf{o77ktzOpݾl&a3:fyvėX%(! ($&$hB_XHTIxDHx& /?9J&!!haNXHsbLOBJ;$B»wHD/yFkvYCCP102.UPDE  !"#$%&'()*+,-./0123456789:;<=>?@ABCDoM3BU ֺF7e Fo oK-6|b.K.|]!+,C)a7B Be7 GhZֶUD^heyB {‚a0U*aO.{%_uI~YH`y*k*$pDǒEٍ%4 BO`{i.Ut, σmp3Acs%_Dg7b;tBs5AZ$t#F;\=Kv#@?@ABCDEFGHoIJKLMtID_o?sB^LnO9ttaW:(0&So$p̑=xےEkM.\8 ]HXN)`+ ךВ?cmN9/ y)Wrrv58Le XU*f\D󶤇"1;/JKl+::FB ;La(d\ĕP< Ѽ- 0fpz'yB,4[XAJבH_"f-^UT'z{)W^a.!s$Hya]z8,]mIE紪BpX=iw{zzVL_IN.F]QC W+H.0{eyX5K4"h8ޖiA Eo{84oKz(B2S,lIaLtWnt+jp gA˛pyw"=:-^hJv}~~id 6> $pMt |4cN9]ƈ@+1 - ^]5z '#: -wlN)9 ťJp]ha%y1 0&BjAJבH_bNN)\ VX Z|G9&h`<.rid ‚qu6Q5lp.J1+W C4H$Ώ3[@{p%-0Lp%@16lmޜLF  X0{fi3ի7't+8 }yfH裮i`7_?<|}>GNdq߮7'u]o$H'yzsQWp6yGt: .4^;QfUc כȄz Krx! =.>7'BC .J%yrzyihƦAvJ[ +'b8y)MB6mڰ טF^c$kB)/9P\EW·;L#SG78!r\NZX&-9o$:˛pyw؁+p%!ZtyBP?G1S+xyr7[&mIq̉g+[@\ ]-ޏ4\M3^FpAϳ .0gʀmIpy8O9} +o0 Xpy9| ˛wL#lǨ<‚9g4(ޱiBK#p5l2J[`91=.F8 L0.ridRC;?ap4{HD=L`aW`==FBCBPD9\MrҙML`Qہ+p%D#:fb8b,,W·;L#L `͛k|2?!c=F-=sJPo .ۢxǦaO. \M3^p%-0L[|P&puW̦ =u p1_`2 2xSN˛×]B*K cN#VN Z+ psowx͛\h8^޼? x4jʤRC'Ot`ԂXsLJpu0G,d#D.4tՅm҈DbXWB%Csi3/7O+h~}X0jܳ e@$"<^U'X0j`l.bU" K !0'F}!Z<lCP< {ے:A+k xUIK j- ĘF8hwvT╌%Jzi:%J3(zJ)!";&mv5CCP104.MACj  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRoSTUVWXYZ[\]^_`abcdefghiAI.\"H/<6OSg ^^0UՒT=6퓒$)q.jivOsE`lj&`eKg*w/M{z+VI?( @NE&z2>vzAf]I|zHZ* S]t˔wĆ5}`6sKJ-c N-^+8QsEs$y۴zOg,;_LQs3/9Qg MDc$/]K?݌cR/^V;Z[3Ur:k H'%{S4v6$|&9#|+{^8rwb[џ9r6}Vnr#5LvDt9So z:'2\DYI­M4T۾>`l)YDT=6-y1 lWJuIIzk"z}}­M4 ϤLٸ ShՋ$|&9˸;Mߣ9g4~>3_vtu:kzlv/[%AI/_ѭ{LLz5 /u"Is~* }YI 9QglOkvLf4;)^ɥ\Gn(jg%p\J疢d=H/jD.EymGc 톂}}nI/włn(jg*g%NE5SanxqLS0V_ yl ~_9S${&mijut3y~T۾>?) q;~qIIP~|+=sLvzҖKC_IgkܓaEiW-L;g65c6ODw]VI\oϴzA׻ǑϴXmD0}s\uH.) @0e"&ҮY4d^!{^OJbMU\/+Җ9ys$miJLzA;럔x]D.S4v6IIP~W{T-?s؞"uE=珕sϜ(LvDӅMr[ ZǮ(hTDsf$z=}6%53 br) \XPacvLRf׹:jg}"m)5"ќPU-(Q60Fg64X絒ծY}'/2Kb;:vP#<}jQ+~=)?y B.Nj ` Rm2wq*4}nj_VjG"+)s>!?y7O:W06f]Xr^nfGoldᔔ,'/G!5n` %y07;|!5>PpJJj'/W6CLck2}Y/(P׃%{}KI(ml( S4)Ly:%jW#a nnvzM{/lNW#a nnuzնﭧ{k^i+6_ڭ ` nnxPؘPV_{m^ik%§rG/ %}|!` >VyJl( OAIP^W`VTؘSU-ymI/납1`ZDu])jߐ6ΟiJ`OJ%뼻>(A`lW׹BbM@cAI 6e[UxEPjM aJ %֓dt)A٠U_e򏁰/-H#niu|갽%C%%ľ9(/X4Pg }A.i6JP68~^vS")l8% SZ`Q(`g }Au^'ҖV՞߿ߜ(P׃%(?nܜo aKaMϫG%(O팰sO똘xf%(?oGW#-篏t}sXꛫe9j<3*^11 d;7פWj3V_VHw4oIW4ovTfr7UIPaYَ˙xf%XqtϟxsBm?D 7 Jf M@̆ba8Wr"֬$( 9duLzTؘِdb$(A`_07=!,wrލt{n,|;lZ+4 duz}l 6e9)A٠lG%(TWO 0SbbA~lymi(bJP6F ,+Vi󳦘y*llh3%Cy%p֯\/)QA3&=k:I[cQn k%沄I@\Z2 {ecO판i͑b݅+YϮh%(T폿8Ҿm9}Ed8;JIsR"no>Rj.Kl?m&'֔]zG5iuX+iܴGGmN6#Z}su鶜G|Rj.K|V/V_ 4\fr>]v/ꂣQ 7=GBUp4[}A]J}vjD uJPeu gTOưה ٥w~O판i%(e5/K&mNĆԯPVC]Jl0GW'}sXєؐ5%JEb TUK%JPd?~qB8ZҔؐ5%J>j%(թ&D \(A`n7'ZҔؐ5%X;GG-N{+#џ2wq*4Mɤ-1i=+P6/W~ בXTĤi0lbOSbC~llpWv*^jISbC~le{P=ũVI/aESbC~ln[a_aiפ-P6”⅕l0}uYӾ9(N iV_B:ҖkҖ4 ƞM)ԯ(A`noo7@-"jžl܅ʦY}A '|=?hqB0XS.N;N+AฯN U0eޑ5ꬡ))ݶ¾p@ˮY}I s{tϟ6'ZRv @X YCSRj.K$.rzךqVA3&=+u^[}Ak|E ,a333\kk^Ǟ6fJp!*[cFx\GRvkm+sR1;9! Svkm+3.bΆSR⭱V?(i|=?hsB;M% Et"v{6mrykXPU-}}Vl:I[*llG":O%"1\Gj%(2E&muzնJ}vTUK%Jxdf8o*#vq~]IPxzllЌmؔwaiפ-9XPm>LL(A`_߽d JP6J f<3VT۾>S>gsA󚴥OE 8k6;4}Z-w8>! '7OJ|EEqQEp睦O~8_cQ(Aq\ANӧrG/蓛{%(lv;ܮ^u^~;ޕejg%x3x<|R=6@g'ʹni'멶EJ,wA vV{FSm>$( $(C<(A5%V:V:%։N'.MΓĚ_(A5%]y dT۾>'>cM"z2lXIPe4\}{ViH/;%(lʶ˗)-Ȱ'뵥cN ,ׁbMk}B&v]bM/o%[-t݌:>rwx\^H$(]Jl0^ ,Q[ d"s%J:h׳}+׋wJȈqʱ'3ksXkwaxVk9w-%x3_kczonmJ~LEF~JPǢ:3kҮg:c{sT:!4뙬W"#s;ߧ3e"ϩwJPd폕EuI B]p4 Jc%J>@ zϴ~zN Qk%(l xҮg%(l6G=?H =nάw~Ҝ``*^:k4cM u^IJP6<)A5%< PWZ$%(@HL٥JP6ؔ1;9!YSvkm+3Ŝ e.Coޚ6TJ0~fl7 6ek\&m)wa2'9ZVJPe c>™5EOyU7O[oM Fx\GQe=֓ ̚qVj<!Ş)&q]0[Jf5A 6%&miJlO udgJP6?!YS=^Ӕ(AqSb.k-%x35jN ¦T7c.k}eؾx\@. E|H-WlǞ&m);õ|Y uilzD;H"wJPeh{`פL5cJ5+A kIu^[}Ak|[ ,a3fJ~G}슂&`gǞo3Pܾ{(A5%ƥL5ii0 TsYɪ^l%։7iKyZU{%80ISg Ŝ Dĵjg*g%X6oⅩ+9t)Zou?)GG_^ǩn(jg*gxVB%kyuT۾>+A5%muDߥзyy-v5L|}"OjZp>L3γ%aÆI[9%mGp%͡zl}vjD AT"?ũwiSfC5Tؘ^YD \(AqLӺ+F睦4{+Y 8!YSֽ4%6~F ϸkr] E=ˋSϔi%J>UTk?ˋ)sBLͬok-JPd?'3kũ43So3+AqtϟS '֔SigfVb<6TsYbUn;"YSL4<նT8J;֓-Ur7^u^8&`JP6hƶzln=:I[mG+A5%͗'@\]5Ei&1նT8JP6]9^O_gM`:0u$MWJP-1"^"u`:(PUK%Jf~s9"M@_pbl)걹K&m}}je=nΚĆԯ(ݶ¦:I[]j+'M54%6d e.LiZ 6%yMR g%(qSpfM3IU3َ:W=+Ӷ}ZW~ Q6d M _4p:Y =fgb6'3kpy%{ᔔlۅv(ۺ@x\Gj*l̜`nJ%(lʶs3`פ-u`{&ziJZ}fXA ,ag@8艽6Jfimg M@}Vj.K\ ښWնR7VׅTsY^bJ@q+dΔZ[eMku6:I[pyl܅l<)ݶBTsgޝ! <նϔm+lJ yMRvkm+M b{ܔ'%x)`l)Q6ߙџYpzPEFloM;:<[$JPd]ϧ6"xa\u`xV"#GW ̚4u`]X {zqj#BbMiZNS l܅8iSR09EƢhuz}B8)N6”8kS(I<V{%(2S2)^N@>S&O#%(2E{߽!i ]XT?'ttخ;:|B7O)Acv靟™5eTh]GJ|~>X,|B7O)AQ7gyH ch|j>un?Rm>Cn?R"#)SgGJPd__ڈX^0M _'ttW"XקvQ |)N6YC=k6JPd,8%pfMSbl܅O#%(2t. a49O~GGJPǢ@~!jI[{y*;g|ː0%^P?)AcΙpk+%5JfX,|B7O)Y\>Cn?R:\1~> _b2Uy<澽>͠Xl=㳟O#%wyH EѮS"#s[MJPdۛ/+A hN:k pkͫ똋gGJPd,/ά);C^(Aq,&q}jB zEƢhS}:I[IzlX>5DwZ X%(2E{,&q}R5bmקvQ d %5Tk%(2bPkP(bm~>Ebm 1S ښWJ\kk]\ >un?R"cQ딠X_—~&%|xPaJ k%(2b{\'%sf-%x3_kH (8ǜͩ])^zl(l8%%(2b{ԯwE<D%x3_k;:0:\_pb(: xJlcEFl󏾼8)A7_ID_&:v`үShYٜN@ zd}e}} 84(e=4uSuxlI/eoC |ur=Uǖ==^JP6ط@ذarYِKzٷ:<*A / V”8zAd6|vuPg }:W~X ,xd~s9"< SLԹ伶t[|vu֐4rw{rDWu&i\u`%Xo`Xĵ:W~Ϯ%h/L|_&絥j\7#¬5&m4^0նJuAQEƢhkcK&mzlv/[%p>^(Q"cn/Y^0}`.hD1勉>^0~L5{ Ա(&uk˖zMgZs?h%JEb\GjxQkD XH>!iٽl}5VVNjX%J>@WN(Qnw}dXOsnI/ؓӉ'6%JEb TUK%JPd,ss6'3k_ᔔ sEX`ֵ8_(N@М4u}-km6zgGJPddn?1g,63(A67Jk| <EFlyJ'l܅3%6]8 GJ` ">Yn?R_kC9:O#o)wL 'tt `cg? GJ}vTUK%J:DIP>$l0.Li)!?k6<նT8Jfj9VJP-ISg u`{&+v{N@Ƹ SP g%DҾ_B\~9sueM}5`פ-ն4%6JP6qS+D%64%6ĆLiu 8%6~O\$3k'ckҔ̃m+D%(7婍@&MSbC~lymGiJln[aSakҖjg]X =nʓ4c_]b& M@#S6JP6c=ޝHLgTOưהR6%VJP68nS0Lq&究}}l܅l0Ǻ]>!YSm>LSbX!*َ?}Y%(_VnxjgU0yĆԯ(Aqtϟt8aŚjISbC~l8Ͽr8aŚaESbC~le5l0ۻrlV_:!|5e.L=V{%h 349G cZ+l܅) \+e| U0yq&)XSj.KƲY} +.c]X %[ N&S6JP68V/fS;#iꬡ))Aqtϟ6"XSU-)wᖢdXOƓTUxUZ( JrwRsm~OtQۍ+5w/) Jks҃4cq4p:Ǚj-%v6/!|urk9JmTvJKJekV_zP] 묩a)wa%AIXWjV_-`d6/=(4{ _hҖUuworB&( OVIPV/ǻ+ޕ#V{%Ae%h=exw%( O)%AIuR]iRux| wQIPz?]l0f<a/LiZNS6JP68?76")Mi]UWkD x56V c]ϧ6"$֔u4uE<+A`Sv~yMRֽԹǞ$u}뺽7Us&XmyF󚴥} Y 8=BhEZѿSk, yMRLWJPd^E09(l8%ꬡe4ׁ͠(:VSU-( OVIPVӺw:W0-ꬡٽl ˞:W0$:c{ ҭM4-E) go<^<S=^+ Ul܅3%6T:jg}KgT-T۾>K\O-I/jIsLiZNS7Z;럔%JҴ~P"?ũG0XSicfCSbC~lEĺX $4 ΟiKc5%(2JPǢ@iZwMLLѿ7˞:WuԱ(m]F;&7˞:W|M}|Ա(h%kZpy4Ěo<^{%0I^I;XX^WNgsfC^(5JB sO=u`_~JLS"#n>X 6;%4EW F+A^eO=k6{ʻq$%(2|eqj#BbMThĵj;yEF6XS:G $4 H5ǔHSF XH) $T敦Ć\GR.NV"n?+Al LΓ^0=^sf *d8fN Xp`5W{p̴zS^ LҸW l=(AQnElӴ5i&`7zS V7c4wJPǢ+ 0ieQbq3}xZ߷J`ƽq%(2+JPǢ@iZw.lb o|O=u`%x3Z&EW F+A^}&o|O^ LҸW&8ϿũA0XS?}/qN^+A)sÉ5>*AbG//N]o|iL^+Ac]>!YSֽӔ/0X5iK:3kJ` "Ҵl܅o_kM:ĜqyU)Aq|j8_#}^ cS0Lj[XOkKCkVkdVm\Xm>EƺnEv@ӊז"֬EƢhCWOJƢ`פ-նϤ+]JPǢ@o/]q Sm>L:ז"֬EF~JPdp{o& ԋeo^ rW qPJ( OQIPrލ4oZոZ]9ˑTm$(7 +7#`פ-u`:09O^ ~sGu^Թ`%Dux\λweOrW~K vOc=O#o^(Qס%JP6hƶzln=`פ-նt[(:VSU-(05R0u`:06cu^Թ}Y E{cpfM=k6s677~՜H[m?DJPǢ@mxaϤL=k6RXJ`X d!&m)-e.)4p <D g[MUT\H VӔؐ5rk9JP6c3pfMٸ Sm3+A٠jg ymRC]J``_a/L+XLͬD g[MUTeW34uP.Nl܅`i=\Y} S?(waJ׮s+4#yMҔPm3+A`nx™5Mm+4#ֱ~GR6TJpaiJl`iS?hJl( \qVC]Jl_ `C5OFZv5^wq2!qtH/Us:)A`nˮY}uTOưהm+@۔4e.eM;aC?z2l܅sQA+♴< fJM )Ş)wa%JEb TUK%JPd8u'3kJM u5EGJPd,88ά+9GJl ">Yn?R"㘧4p}j#BW3yKٸ gJl( \#|B7O)Qu@VSU-(Q>%AI(H[r> \k]GS/^D)&J׮sy]X'!mioI/V^IPR-wכ%Va?%^Z Bk={M^PVV@(ٟ 49O,_VlJ xaڔJPeeWN%]kJY/N^ %6% 'm ӦT34'M5>HuJ%ծڌS?(jbv`%x3mr:2wq*4e. % l܅I/KᆬoOZ՗:TOưה]zoW˱zPnuTOưה4c1MISQ3%^PWij|uǶZn7_\G3p̯=g (wa%õz5/=(A،vrҔ0kr^[Jk36/=(e*^+e ]l%pըAԱ(P/~@\bL;TsY=,]9"Zs?hҖs+Q.uTUK%JPerޕ#¬5&mI/:W%`]Z*Q7m :;%Xؔ@05Lz`yXb_.i6I B3akҖĆjY s{lάiJln[0X5iKٸ Sm3+a)fVOd6ĆԯPve=N™5Փ15M _Q3\"kl췔ӶLoަ~ Q=^ӔؐK56V 80+eB&J|Ym)g4E=ũ5M _!mkl%pըAԱ(P/~@\纘2SΤ\_kq{{W%;'`\t?)Q.uTUK%JPerޕ#¬5&mI/:W0ĆOJ}vjD s{?'3k'ckSfE=ũaiJlOl?m;Ww7oS?ȾSaM I[äX %`f͠Lo}ځ:kl܅( OQIP6l\G+\"){%AI A B3akҖĆԯِt[할l07@HiҖ{7'%(@X Ӕؐ5rnm+4#ֱ~GR6TJ~$( 6LLv`O.}GQS=^ӔؐswJ<,)`8ik+ľ ]l%pT>Yn?RE1q4NFH”8zAk>SGJPdGS(R0%^PWs'tt%`]o5U2|B7O)QfЌ@󚴥)!?k6JuA=i|B84{+Y AT74ku1"^ؿ״f`ôVAl^ooG4%6~͆:k1Q"cF%(2b{tϟpfMiZNӔ(5XrĆԯ(AqtϟF/LNSg i;[ubD gJl0f<̚n=M _QzP $T 3uEa=D H בjD 1N+Q>$줝gҖ勉纘2S6ߙ%AI??(A  *a 5 u񂹠Z 9I AB1Su?Ŕ9S-%x3_kF }-XJA 3pfMٸ SVkSokmWK;%(2b{.SB8z2l܅QIWK%(2mT"#G~rRz)L1E[J`XM yJpfM\Sf%__Rbz2)§Lk%J>j%3$( OF+G~s9zj$(y<|2^`fq֯A ~sG:I[\_%\fS@m?L6s6 +7#`פ-u`:09O^ U>DRo/oz{a\_VD \o5DIxL%a1S­M4Z[JkmX1?(A]O]:I[ZO]F XHsX^0>*Au1%EF~W:& "%5J` J~$( wpi0k2vγJ0B I (`B AT_S:jb0Zo% Rs[4D+VԶ``B VR~yP5Jf𵶶A 3 v %(26*A8)AJPB Y ֶnԶ><(`, %J`X+Q>$X4PSבTؘI/J6ѼRDIb]̓=ǜ ̚zl(l8%%(2277JsƢh3akҖzl(h4JPdp{\'%pƢP"#EqR"XMW?˧630irݎ:EVk, %(2=.8_cQ(A8̚zl` %@f xa;%(22딠E:5SԱ(XS2JPdG)AlLd8fIzl(qcb_ꬡ̆bb],p'%Q |-pԱ(h%k m}{Q{s+6i%پ{PX@85*؟B c6]EiꬡF k%J>j%* JSux3=-w%նϤ_E`$+,i9}O݁mC\Tf) J|D \o5D XHBbM@5T ܯِᘕ(: xJl)rBacᔔ(P׃%(M;a/LbΆSRljΚaE똘xfr6JЌ6@(9%lPN-uHSacfCJ|Ym)&)XS\$[MUTEƱX^їO@HTؘ)l8%%(2r{tϟxqB8u11 JFB)EHu^'Җ:Lp$穰1 %@f xa;%(2E[MW?AHv25+A8̚ 3e.D g[MUTC]Jl0f<̚ 3e.D gJlp,s>93BLٸ +Qס%J0~fl7%q텕lP}}֯iKTsYX^n=9-6f6[}D H o5UR@軴~՜H[텕09D g[MUTEƢhtxF󚴥Sgg%pqQVljB8}tt yF ¦TA3߿AGsfM}tt_M %(nJ/L?}tt yF ,xdޕ0նϤ+ymi(bJP68~~sjg xamGIGWPJPexmno=BbM@8n=EM߮6JP68.fnvvS"i)}lM9NI sWq9V7=3*^dY/lЌmu^t[?(A5%VaŚn%(janvvS"i)}lMs6 ver^>xabJ[zD \(A`ndrzwB8(wa%JEb TUK%JPd]zD g[MUT\XeV\p)wa%J:D Kԟάqg%Q XEN\kEl܅u-(: TR wۗ™5M _Q"?FĚiJlOMZNӔؐ56--yAu.X J07 vVi0X{` 9O氢l܅lp|Y՗N팰uz2u`씨Z~jQ+~U:R.5eTh}Taf᤭as6%pzPeMx=!|5Ê11 (A`lg Ê Ջhy%r]\;* Jà j-줇IS7Z;m:ۤDIPV4_C%Ar]]wJP6a0kJ8nv+ۀuIu=(QW*#nn|Ha:㵼ێJP6ؔmؔw{7u^T۾>SiH?yVj3V_Îvu(G._JumJP6ڛ '[0%|JPejVJd< ϤlX U{d &IS7Z;m@o+%J>UT$( Jx;Wjgf7VJU36 8ǙbΆSRxqivjEw[A3PIPe $!LQkM[`Cv`O; SؚDIx7Ja:VS!5k2k6L5:XCgVxeflY %nv0Og%(4cͥOg%|Feflѧ>I yMl5sJJuA EB 'Z*Q.u䭦Z*Q4(:%Jg$( 6L#;4՜R7Jo٘%h %4'Md<63udJuA X՗NgTOưה%"1\Gj%(2b{.SR୦Z*QjM /Ld<6Ա(\k ;%Īo+֤LL7J<,)`8ik xmf%V(bMd<63uE%AIX5ԯِ4+ J<˗-R09qyŗ`u ymi(bJ0nG%Ăs8i n.X %[ N&?k6J<% \EL[ Vi0F4;%x`']/B&(: TR%axM1P)3'%Aܧ41JA vK;dsA vw )woW>oxo}(]+Q;ߧdxOOxD g]+Qס%JRmA / 6,_V4 5j{Vj7JP6c3Z)OJfMZ %{%x3MZ 6m+4ÍT~0`yX`yXbS*n*QbgJ|Ym)`ڠl)[cg%(4ck> JP68nS+A5%z{Z %Q 5j{Vc ،'%8֜YgY Q %އJfi{f=(A)OmTmM Z{{a%(OJpЌJP->W7O3A 8YgYəeMkSRcz{%(OJpЌJp!*9Γ F%VؔJ`Co/e=6I Q ;D%x35gyR/;D%x30gzVbάe=6I Q 6*A`SZE mnei8˘䇟+A`~CLck2DߧD}|Vld:I[bJ[s\d%ǹÃ,_VlJ%X6WJP6./pfML^I eTsYymRa}R ,111j/l4iK0:&Vj9M[Jfi;|:ֳ @H4Ĕ>&SF 675 @>Sa@5[4Ĕ>&S&)qFqA Myj{u;&`24َi)}lMqn[aS*A~_q^qA ,Qi S<+n*Qס%JŻ!e=~`.NJp`7^ hCL|zkՃ 6ek\l0>>gs9)A3VJP-qܔ'%x3ZϜ )4cw R %m3!e=1'%xOgCLI 5!efld%(+1CLà ،'%8nʓl?m11%%xO[cn[n[aS*A~_bJxkÃ%py>+Ql: l.'%8nʓlVsS2JP6qSlps6S;+ќ̃m+lJ%(S2'%h Q %me7I  }|9%`]D vU:!R خctV.1QyA v˘d}{Q{s߾{%J>UT$<}G%AI沤}sXQ x}J]ϔtS"Q7Z;%վ9lKzMz%80a;uѐ^0}J]JJ~$( ju3Rux| wQIPmy(P׃%D->*8Z;6l%ִ2َV^ϮBU-(A`ScSmoyMRm>LLIG~ wn {aC;bA"wI %އ@K4Em߳T8Rxŧ@;{kj5sRC]JZ}}̅f-%x3m_\G3e.\4%xig},h|zz:|^Pm OR7PS?[Mj[Xw GzsBr4{6'z2j:k[Jpptϟ7'%x3mwcZj&kllKzަ~Pm{Cޜ4-yAWYC%؍W| xr} %~zLz|P۾>Ӛ8%&ۑa=OͬDI3wJp(޹ e.\4%Cu(%J>UTeڟMvT۾>+Q>%AI(H[Ѥ-MꘘT/~G5>Sm>$(QVye=nά^D\6iP+A)O a4cNu=(Qj{DNSm>L ;[JPeOj! }}&`8J}vjD 6%S?`l gնT8R7vZmBa@5[Jϔ$޹ 9ﴋ%%AKw}9?(A`Sm?!|5նs6r_neڟM&Sm>L1g))A}OD>Ӗ5նs6 )O@:k(ad;mGpO`XOƓ([JP-.i]D[Jfir_n?•qM">)nb)ܗ/=(ݶ¦~r% >Sa@5[J(P׃%) J*^>L39OLW G"_ilG3 ̤$hKkMzgmG)v s]>jg= y$(6_l0 vfѦTmfB3`׉%ϚE4;͆.b^ s{lΚVj{DNSV/?EvK / [ xaxNJ|Ym)}z yF ,ixdޕ0նT8ϔǞgV Җ޹P~>L\YO9xi6uJ<,)`8ikE44X5%Xo}OluuI Myj`x(bu SQ(ݔ@`lyjF%(looNg֤@rVfŽ YC|}Y e{@3նϴ&u5ݬ7L3Ŝ%_) Jᓑ>ln;zpr$(y<|a<(ݶ¦~ Nw  y&)A`nx™5%;^De<3I9i%x@rYC\Y_5~nS?[M\Ye<aCkXu>vzANp gնRl?m|6uPo +A)O}AXN"U;gնJp)lpܔv3ESQP4 je WmH_}\ISd.[}w R Myj k4gd;\"u5_㖟59Oٜn[aS*A)O퇂5W|Jp)lpܔh4E㒢Q;Lg @y(*AY># yMn3ptQT 4c)bm3'rfT"c]BEv@ir^[X3ptQT@󚴥uLL %jV_aŚ%ڭPaf^PpJd;mGp yMRpJd;}}yFy(*Aۣ{ ,<8f>&<oGQ }XGQ cS>Sm>LL1gptQTkdBh}jge{ͩVT۾>SpJYC5i׳|PUKrIsV=чͩmlptϟͩmV¤L똘xf% gkƫ%?%kߎ_\ma|:k}7OE%J>UT$<}/%AIOݕzY.UjTTj|PyB %rQxE%~m%XF4 cb%؍W%J:DIx?JPmKt{jۆmێJjA F ,xdUh/LDI[ߴ<vp(l8%rl%ִ%.K F ,ixdUv]bh_M@e%:_K hN:k>قim8S7a |ur'[0 wJJsՊ+o^f!?ln;%(4=чI 2Ŝ DX-%h Y ji=|6@:.pbΆSgmGOJP6ۣ{I s{lΚ:gz ugmG ISg (`7^dSm>LJP6شG^άiϬe7@%ý0uE<+A3V8nk2 SW3u֐^bEFx:I[9y~gmGn?JPd(N7E=F|ptQTk, |ptQT"#Eqg 7OE%(2>,NmDHY}}n?JPdxqj#BuLLC<3َ^)O}JJ}vjDIxJf_+V{%Aj6A V{%AIXWzYmJ?h* JV?(A5%V_[_d/l?Ӻ]3NJ|Ym0! SWsRj.K,jh^09=9-V{%Xo`8ik"ƫ$,jf8o*#mJ[A m?a/LNsOu^Qqu8M}&Ϛf˗/Lͨeflu^4D:W0kc Z~e $jOkWj.K}}yVl/e ,%?նJr6JP6 4uc ֓t엛v(Oa9v_\Gc 6e})aiפ-(}}Vj.KwW Di0攈Fw%(gYSF %?K4et|`i=,S?[Mj%h s~&QZl%(nJU0yfe nBW͉^X ]VmGHv25+eA3! S椕O 94|֯9- EY .꧇]0X5iKCLck2ue=_5'Җz{a%ᓱBo/Lz4Ĕ>&PĚ`yX`8ikQ s{ܔ' YSؚL^q[_9)A`S@piڔJ/eƟ߻Q34'M5- 1JP6ط3d*؟|v{XΫW~ ב4Ĕ>&+A`S|B8&Ϛfn۬ǻ%(qSpfM3ISF %އ@p!52wͷn[aSa= yF j6vkWϩJZ=(n*Q>$Tv>i+Rux| wQIPRm>yPjfBfT/;@4Eec3uѐSiJln[lplS;.8Җ2wq*4e.w :I[\cJPe՗rBz6TpΟi]D.Qt\'%(l'3kr{9NI %`ڠlo D4:;L;Ι˴~՜nPJP6<묩^D.To)W >mCynN@+abvT۾>S<+W >mmSmrEMTK@pH"w-%-\z%1\")k|Ӗ}mam+lJ 6%Mu^Qۦ:-Ba@5[JmS6L֓:;L;p:g/UsRaf᤭ajF% NISJP686㩝LҔPVk4#&m)wamf^ c3]-e.Li>yW5u^4%6T 6e{\V™59= yFr^]Cy>(ݶB3akҖqfV3krZ / [ xa;%rޭj0D:g&'絥j- 'm S6”lplS;!L'%؍W%JT6@ذar 6%.qΔP&究}}yVljB8&:(A`n3k zc/=(A@N=WT/~_5}yTjz6&^pN j}yTj.KT4c MKbC~lyZ;ͫ,K4# 'm S3*eA3*A`nx™5"Ӕؐ5%80% 6L3p̯Rl?mmSK,\&єؐ5J׮sIjVpfMz4%6~F f 6%MJP686㩝&`SfCiZ jP}}r3-E^pq4pDIx7JP/~G54ؔܺ`]d{n_Zq&^pN jP㶩aq&^pN jqTUaf᤭ajF%X6hF%VhF yMR6”l0f<̚q4pf hN:k(waJJUmCy"M@#p\ĵq4pe=nΚ<Lٸ SF V/{|~ߦlplS;a/Lٸ SVmM %{aCٸ SFIf̓ )O@8&ϚE4JP-=9Mj[X-%vXmKM^j[XO|VmM %{aC-Waf᤭ajF%J:D X6_j^P/~Gzw%`]PUK%JU强VE}z 24َjg*g%J:DIRe=~`.Ng񂹠f>yWkD DNSb->yWᕇ=yK >yW~FvQakҖjg '7OJP6cdNgg3Ţs}rtaMyN/' '7OJfP_b2a=O;jI5m+lJ yMRm>Lٸ >yWpfM}|l܅^ "b~g TK7 ;pLg@<+A,'7OJ. |@<+amÚ>vzAռ}؁ %5#'7OJ8JP6hvs&m_b2e.)>E 㼦>m@]%x;w$6ۛڛ7+Q$<}%AIx<|2:pKjO#!]J'jeMW~?™5=Ŝ emXSl%JP6h kʜ4ٮKlP֯iK%`]Z*Q>$<>t=t{Q9n~ݖ~PPIPxd`Z u{EvF ;`]+AB I (V$<}o%AIx<|2t=6e{+iRJ'PAaŚz{alz磶FA s{lƓ JpaVV@رY/v 4+nS XOƓ(jbn[aS*ݶB3*ݶ¾R7'%pzP$<};%AIXW]WtjrV^IP wۣ{//NJX=ї'%0( OJIPrwnKx7Jjw[~}~P m󏾼8)oGG_^VPUK%JgRWZU{:|mbMw[JUPljW gִ4X5%(5Z s{ܔ' Y^0_5+n*Q>$,ww+UUTA s{la{x*A`n Uu=(Q>$T(hBIPbu{%x6)Q$<}+%AIXWھ<m%uEƢW"h̵ SZ`Q(02+0ֵ SZ vJPd{7JPddnw$sm%9cQZ Y 6sm%H]J. %(2bPkP(AkmNZ زĜEz;%uY ;`Q(aD H בjD:ÔpJPǢ:ۤV୦Z*Q>$,ww+i6:ulhMھ%vTmm%u;?JP6<̚E4JpaK4(O\")Ş)&ѐT}K vB ,Q+&n[aSa= yF v~}AR븺aGr~iEy]Ҋq5nJj}9o\X}n/g wn {aC"wI v'ב{"wg%JgRq;hJrێJqD \o5DI]%`]o5UR 6eۧsW3`פ-1Pm' s8%r~K q\'%(7婽Ě&mkl+'ב{_ccl)ۣ־'3kmG)l8%%(T{z8i.G֐B ,1c@s&ir{rjg*g%(4c|0X5iK?mG[M|9R<TsYb0>i8}}&o5uvYu=(QCu( Dph Z*Q.u䭦Z*Q4(: xJx;?(A3jgVSg'^ٯ%:l?wWt8o*#]λo* JO/JPe՗rBz6.l)ڟάiik6JP68nnS)R09O`XOƓ[pLzl0My™5u$M"%x~ٸLgz;%x3qO=WT/~o۪w/JPefP[aI[Z;ͫ jj7%B&`l k~Jd vz2ԯِ4+n*Q>$T'Jwm7iwJflot4>vzAJO*P7 gT/QFSglO󪺻#mi|4J`XOƓNlG&3+A=Գq5LwJV@0'ud'M#``B&l0{ h~*W_^ @%s;_Vi0{ J07 v_olog%Xo`8ikԯ(ݶ¦zM!LS=^Svglog% )iZ3Et%x3f%Ba@#I +^%艍Fu=(Q>$,ww+ޕv~nK՞ulz7C%ArwΏm+4#&msس 6й}\UsRj.K,wf\]wq^^0u`{Vj.K,w}9o05EZѿS+XL.G~՜( OJIPV4_C=_npK?߼+%Arwmue=6 g^Dwo7@Hڸh~Uj.KT 8i%VhF ~:(A3V!)il?mk3;ځ:k`7^( O)%AIXWi_/) J뾜_zPܾJ}vjDIxL) JBuخHJ?nh7~nuw+Z͟:l/%X6WJ|YmЌJ|Ym)a{PaMͨJ vUߕ%#!}N?$(fSJ07 TAJVPmƫ%) JBux\λV+A3:<.e}n=Tя{7Jo`ڠ&`RjM  y&)pX>(A`nx™5EZjVy໷ $m@C4N*Ać\"[u;>ao)AV? M@u;;8,\MyBm!^̚E4JfkAx\GRuPRnw dj:(ݶBTk6JP6^ %}&ۑ̚6ΟG͙֯.wm+lJ ~ ͙5 yF rWKu[ä-նa%Xؔ@05Lz`yX:$%ᓱBo/L:3kJ8&m)D}:;eaQ3_QxU=(YO]dn>|_IJzcJI\?J]%(QuJ,꧇]f]^IVoWQr{WKhnޕv~Ќ+|_]9^Ќ+|07sЌ+|Pܭjf]*n;>oW%JV׹a D m俟}+AB I (VvECCP104.NOTE  !"#$%&'()*+,-./0123456789:;<=>?@ABCDoیg{Oǥ-Z}Wf,yzUm(I'X$0JrXV߆Xק3.LL- X^__m A:r0:&r>t/TP])yl8Q.az}xa(\G 4g9;AV'Nl[а`ґXFכ+(^,H)<9:]4n,Dz|p 8<=Ѕ"{S9SpAf{-OP ,@x 􁺞-Z29 3dƸb> 4,؃t.ahՏ>Pbeq't2 -51cd~t"fcɇV[{JN$BF=bNs𫣓cΤIFp"t}l3A{y8KI|NOk`ihOô&'*D ,zexMМ 'ºހY"8>~Sn%N vz1Ȍ8BsDMC)STn [p" f]l9:mD4g8u,o`.Hz!`bE/ON;A;uYP ,:kDXכﻄ,Z(:pH|GNҎ`] X'sdۂehuzMb墑D8^I dbzrl IՉ!Ai2v l3A#dgstIj1v/T:F DGH8?l 8鷗w_CvCCPHDR.MACX  !"#$%&'()*+,-./0123456789:;<=o>?@ABCDEFGHIJKLMNOPQRSTUVW{u1,1XT m/8d"E/I6\n!*XV-DET(_qx㐲S9hi?aB?DD%a]#uʾ7N`qy~O D^,ؠ1me{|zʎl$ESF J$9 Ӏ_ً)uR#׵62qɉo*m)JˈsMKK^He--KЇǍlܒڤgtN6TqMZe-He-56.%I=tJ83[/&I-{ R%Ƹ?MOxk!*¦"JzAp *bm,@),MR'-=X[pKj6QB BG-K83o(HZh$7/Ww TS33x " 3HT$zYҒ4qK/PAm?ɐ)+%qK t=DE_\&bqt>_Wj z&<z&_ -IZ%AcS%dEϢ ^/gzAP$^V9=t1kg`dEJK r */-I*} Q9n, =glܒ"4ڠ#ЇAHLr$_`hH^iIZYT6XIAKF:!Ƞ;46˧e|a&Ze{8 ML_\7/.Χ/Ww TS33$)D o3h|:%A` tPBa|u.//BKn[[P5tK 7Uvݶ^,VX?>^{X_YIKl^+ܶ\ " dco*R- kвm3^P W]sk nI!\Mpzw=5;KloܒZy%>.0_o]k nI]"7h 7˛G<ߓdxcm-tJa:C{Rv.έ-%N7HZh$7]sk nI!\MWlTpF o(,%jkvmcA.z}mm(GF`+oiRd_oyk s}{߾r{޷}{%|Q\$먪Jm80 =loader link loader[op m80 =ccphdr relhex ccphdr sid loader.prl ?@ABCDEFGHIJKLMNOPQRSTUVWX.*<?o:YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}7>P8 / ~xOA)~J'%vGF=;954}{zypgaVIDC30& x$E*2EYЫt+t1$7._ _H:N ֲTϿ`ʇnn _n5Q w /N]Nnn,(8uB)@^^Tp,n p+1 ?C ?{`>) OazFTo}\y@_LM I4+ ; l{aRp*Vi>7()Ҷ J۪ԅ8NBx"} Uz<EuɤV{B;,TB I'|x[@] Z`kHEEjVH&c8TЎG*# ~T1_lj}<@Xp(0Hn`EQrv2)MQ^;`EQrv2ɧ-+!' ワ 9~ƶwap"CEuLaZt:DQ`: 9 }HךGQ[[ݞdf"Q @a$>S(3~S zz'^7V(Duky$tT7f; 7;·S:z8p6?; D*ؖ3+b)mYs(4l֟.\Ph,yFFFLl*To)-e՝RCw#y0G\PIG-Eu0p"$ <;{\VR%0 J'HyZTρWXI =|d[vaRwAI#)87(AL_/OQ2M"rT:YhUhnH٢@@sː /a:@Ǥ&)RN#M4iFm@]L7?@ͧ7 nx:Z f?RmcetALF|U C + y|0p,P`/8k!P( 6d?X$н%tlؘcؘ/M$ТBV]=6l# <[êjFoIkl]&wyv -;Qg$БG_k#5U骖֠4[Q4Cs :鄈Ֆ6cgft"L<9*=Vitd"L ZbwR 4gHB5:͊o՛5ʖvxH4qӻr4GHdIA0% =lۋm'4A K'vՍFl ͳz >?&5 $4$^Nzd"ywAnOZyWsF5Zvaת,.=Ǐ?cצW~iF3h)Ez[ih&۷+%|:x _2?J4CW6|D(ǻl EMB-{H͝pj'!Cߓdxcm-tJa:C{Rv.έ-%N7HZh$7]sk nI!\MWlT:B1":]OʇͣUse: DIRNAME OFF to disable directory name display DIRNAME ON to enable directory name display *.:^NʞF~w~w~#_ãdisable directory name display DIRNAME ON to enable directory name disp .z80 ;Utility to enable or disable directory name display by the CCP ; ;Copyright (c) 1984 - Jim Lopushinsky ; tbuff equ 80h fcb equ 5ch bdos equ 5 dirname: ld de,scbpb ld c,49 call bdos ld (scbadr),hl ld a,(fcb+1) cp 'O' jp z,onoff help: call ilprt db 'Use: DIRNAME OFF to disable directory name display',13,10 db ' DIRNAME ON to enable directory name display',13,10,0 rst 0 onoff: ld hl,(scbadr) ld l,0a4h ld a,(fcb+2) cp 'N' jp z,diron cp 'F' jp nz,help ld a,(hl) and 7fh ld (hl),a rst 0 diron: ld a,(hl) or 80h ld (hl),a rst 0 ilprt: pop hl ld a,(hl) inc hl push hl or a ret z ld e,a ld c,2 call bdos jp ilprt dseg db 'DIRNAME Copyright (c) 1984 - Jim Lopushinsky' scbpb: db 3ah,0 scbadr: ds 2 rsx66: db 66 end dirname  .z80 ;DIR RSX used in conjuction with SETDIR. The Directory names ;are loaded into this RSX. The only function that this RSX performs ;is to return the address of the Directory table for the CCP ; ;Copyright (c) 1984 - Jim Lopushinsky ; ;RSX prefex follows: ; dw 0,0,0 jp ftest next: jp 0 dw 0,0 db 'DIR ' db 0,0,0 init: db 0 ftest: ld a,(init) or a jp z,next ld a,c cp 60 jp nz,next ld a,(de) cp 66 jp nz,next xor a ld hl,dirtbl ret dirtbl: db 0 ds 256 ;to give 2 pages for the RSX and lots ;of room for directory names db 0 end v@~LOADER.MAC_  !"#$%&'()*+,-./0123456789:;<=>?@oABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^p瑅P1sg-JcI\%|°0Mn1(IcnQ*l'6™ySĮ[z d+1Ym x&msP(7a,}޳0,̛|AMɾx8SITcYlIKWc璋y~^WϏGNmT!GbinE+rCX(I߳0, -t~:nK< VrBHg*}, Z8^0AH­XϮpF%}ȂRDc[pC.faXv,2FM֢q,zfة$*p]  <պa1Y0eEYBcf3pF3XϮpOvu,?Y0PmA+9j50\bP.:.o,RuNKJk?VdqʖfvmVUx??ccþZ~o١ E|[-# X/eo"}$-j̍\CMr do,Rڏmu0mut {W 5j$Ќe̒^i$ŨZT=^ Y% [Xz7.̛a6acR bV/Pi_ <~fߞ]"MANbd- [(Ln1x\jؽwxlD, xhBe峫W$1ѝĶ:Q, xدX=:MS3a~0O87C0ehݙ0+e]Tr(LEjBrQQ'5ݸ:[<ةWˏU-;TpE+ 8-/ BZiY`K$ƹ"k6[޲NZ~o&+& mJ7`V$QtB&kYj ,g4F+JWc+ k5î[X@P [, ;&ZiH'l :Iɭ$$ƹRa.E\a]7,͖{ `4A'{,iZi7}Rnq`.}] L:OyZa?Ub0zfRy(E$YV2Fe̤$QnIkqFֺZ3*%Y0O°0mƮ\fl2l b:h z߄yE J+Ac[0ORc7uoe.e"s53)[g-fIVb4n]zA탕4c^׻q}fMTzuEVҌ:h uo,JƤһK/(JEpuvcKrMTzuETx:؍- XHB}7^`_ K$0OV.5^׻7fMZqC.ɭXpUg?o`*V' b?aa҄RL 冰/ ¨&Tpr+baX;y?^W$T=vyA'p;gCc`X@xlL$+d s΄x}^F6J[ ԰Wc`\8i5'k1ѝ H s%>.Ndg°e[nY@ЄzcfEP\, x"_%T '"ܪ!EX@T=ԙX@7-:VsW`f[Ҙ'p*ܜXX@W?3NbS1O(7Ŷ:a߄CK'Mgs*"Il u#N*OB-Չ&jς+ TNKɂǛ Y4YBc;mug_1ѝ>"bPnrmubaXTr, ;&&|Mt'ϩ5k;mubþ ΄[a%|A̤$Q*,[>Hbþ %q[`%jN~ `\d~աnWHbk?V, xدXX&q)ug\b4 s, SeK\ q(fUfaXTr(oY@:Tz3f T$JfLn7`V$QL ­XB `$YfLn.5^q\f=&%Q*4SgB-Չ>v T$J39YoH.FMbB]M`M8࡬fEIlNnE, xPƒIRar֢|ցX@P/+޺/Y@١.Yͮ@p6}I^^5YDwP$Q*4ϩ'Lt'N, x7PgƒI]`Ey }v:d҄]Ѻ3ͿX6wϞH|~ͶP.K _d,Pϛ ("l}̊$h%`&"~Fҡ`;h%ܰK rER[PDϞ7 iJG!Irz?<{~9"¦Ϟ?Hb\D&k1ORaXN:0T_5Zw&bd- Y d%Jc\D&kxlXͮ\N^s9&{tRl(ERذc@ugB.FMֲcՀugBUD%5YUM0֝ "5Yn2$%Ä;Ks4Րd%imIŸ&MV*MX(ŨZx(ugBUD |gi.ƹDJ7bl6+- zc̊$n%܊P(Մd>0Y* MN "5Y.'ܼj\ RWp9ZMڰaNn΄AkJ-ͥbd- = , xp,ԋoYj , xcP֎ls ?}~$+ȷ bԅr3 ("lz?YAfEg4ےƂJn^"¼v\*s5$y9 ("l# 9lz;0sẆIDo,,RCׅr9a6acRΤBeEWg4+(HbAi%7XP/Y@aSGr- ("g4+(Mƺ3aXPZ K48$RzlK7p!} g0 6d҄V 98SWb4H)(oY@@c]X9# X h X0Tp[ ,(,4hRiBKs45YJ vMhi.F&kYfmVz0l¼ǤPHZ+mYY鳝eqH*"ΆB,ͥ8WC,g&1k,+~!X@k;Ks4Ր$ 3Е!@-/ hRiBUD YKq$Y@_KE2W, hRiBUD%5YU5LEk ,I5XcI(Q*TEij+QJ"`Icf[,`1.0TPheCzm7fE5neYuֶms9&{"J>)x}`q>0TP.Q'g,`1. FJ^wkt1j$6 s, 5Ym뛐~Qʰؕr Âls /}~Ln1ho,@/,X'faX i¼E BHaCYg,`l0Jt[nՐ,rz]001)*V[5 B.FMb&! u3HbP qrsu `Ab.q/Xҿy,fׁvM8;MpJ6[`a°0m|lwx7窱[-vn7;Sg,wl7K\x°Eݲ!%;Ks4Ր$JW,X0,L-^<ͻ*c[T˝*[#)3 âʖ]vw^l`V$QnUq62gi.ƹd>{es30$ a8 4J\ I6[`a°0UDQb}U;mVzthi.faX6+- N೺ _bd- }~T$_i.sX@Wwۨ,$QnE.FMֲ࡫LK.%!e Pu.o`&'Ruf |V7@B QYEthi.f>kn١n΄U$0PK5[6[`a°0$E,iLlKaQeǪeCYg?40+X(q1 -iR~`"n($4a%.5-əY)t)%;Ks4Ր$=FPHJ`%JR%imI!K'0^i\bCYg/̊$"`Icf[, x=X}K0֝ s}~9K4̶YKrfƥ*ThIl(d\*s5$ɂwd҄8XҘٖ4 ’TeCYg?40+X(q1 -iR~`"n(o,׵%{F% 5Y4*"#n($ z?`̊$"`Icf[, xw^C]d҄daI^ݲa={9G0$E,i #n($ ne?aaXzvl"U°c/W5}SˆϮGP.bҟ`?aanc%K۬X-ϮyޒD_bd- ]Ft³+^Vݚ sO5.ʶȖY0vq9b-q%|~9.p<0,Bխ[5|0-I P\bd- Y`,I|t={ fJ7֝Eֶ3>g?hrIkQt¹~7th'7'ղ>"db>j>gWG08XҘٖ4 J}OϮV;3mIcAi%7,XlYSϞ7 iJG!Irz?<{~9"¦Ϟ?Hb\v}"LRUNHDR.MACQ  !"#$%&'()*+,-./0123456789:;<=>?o@ABCDEFGHIJKLMNOPbZIa4]+dqpcbaJV;xJC4bᢧ(3xJᖠ%p_tw&% +R2( |?JVrKZ(ź{Y)d~})kGiBԗ+\(Y_wˍJ,JfJ,J>/\Bj(D}˅?|< Q_rt|/WbP4K!˕X.TRؤ2(s %|s(4l֟.\Ph,yFFFLl*To)-e՝Rm80 =lrunhdr l80 lrunhdr,cmdrun/n/e gencom cmdrun [loader vRELHEX.COM 2 !"#$%&'()*+,-./0123456789<=6H5:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a7obcdefghijklmnopqrstuvwxyz{|}~Px.-%~) :e;K9*>?i`IqcJaA3R4 mML(yg]N0'&|rkj_F,$nlTO8uspXQG1wtYCB+" {vf[W/!}zUSD# h^E db\Z@E2 Z g+3BA@l%|QP4apЇw­V{hIA "2 ]| {\5e c/Z4hIVd6Ap0י:8 \Y ҹ2ZЀq&ͽ`.- F\6+[xhX48b;?ͅ02Ͳ6%ꀱ[>`,$Wf6&clFlQFlVKH3x( F6޸auFjFv娱Z]FѴNnsU3*y|4 Fq~؄'ו4c^LjSˍr܈獼i`=$0JUxsGmr,-n򡧚lL3?֊iء?469#ۋz:8Uvv}w2uW.;UB`8~isAAsE+++%6;Sb\]=Cm=[$oJͭv ۙ;p{ܠ:8V24w=^[-@3%vɽnٙjC>qvEJE=b8{ܠ}i$\'Ҿͮn'/j `dZB׸.9QE$j~)wVBϸk.'w1>35OEѪŒA{aeG;s1Ì:X )PeJkA0#c G*/})Jo'$r *ê1Wdl1#hw8zLPu^et;@cqz`zdcN:!IW(BR4t /'ªSB9j¬Zk"w$u=|^Hu]-9LQ.o:ʤpk8edzF(F( !)|>1q9[xŶ(F(ᣄPg[Qm8+>*#RF HQ|T5He`D2| jbWJHt-.4He`Dꬬܸ^Mz:+++7n( #O#8V2X H7ЫIO %Sa I5D)M/R:WZ}S?O3i!#NqB^ 2BId#3f|q8zt_N@J-iw 6TFN F+(ȕNQYe* N#D N RYT~*riܬSN4ʅPuYxa #DpR}B= H1% HJ]OSPSDICo~ICïP1Bu9 '(w2-N'>qP囻_sPp!|>q DўvP1ļ@W. Buٸ?:8!7S!R Շ$f1_b!#=EB(>U=>$Y` 1>5Oy} eJs#>;$1 !fGBܼ>I 9IIR~ ͇O}D3Vmy'u #D><R}`sĆrZZ$(|VbZt z@`ݔ/n'wvS*j?M%Z\:r}pQmL*Q8h7V#tPf6M7]\dY1D)VD h30"?^tvS1avS2!MF,0h7,0h7,0h7՟cvS >#Rg;CPbYw C55nM >#Rgee۫930"uZQl&{8GkG|cvS$JO )Z<I(0N HțFLQ3 HY "s W:A _F\l[7*"v{#L |Z-<57N!|No/L\\Y:kgyt/)SPH. yfKj ]JCTޜc$$IK.'8IbC꥔@H*$Wҹt$DI$m,PYY*K&Ċ8+IXŒu ɶ,p`u\䖷e-ݲ-?_p.aFq{}(|` `/L`]^ ]'doloZXfx8^I3K>m`Vle *\e+>CL}&5#?Ϋf#bP5p`ީ{Yz zsevԛ]e05`/k2`^{Ytww1d^'D3$>ܾ".hw4+Vw=ߠs,by׌zI`:!{k)NdS<n`#M{Yt0C1xd];{YȬ 8VKe0*\RzBd@'#(pQybƐJ=e٥QoSIh }6K9;AE:LJ=F>1LzBPs[ :&٫Q=債zBPx0Y_Myʅ˽E:ځY${\{k/־ҽFm G<'Þ5sWAJ=>|6`@%uX H.jSH;X=׷gc0 J=qnܯ['~"TԞlÈ8XSflcɽ"87YKԛE[{,Y\ڛ` 1"Uoeo(FOH,d9jOwVVE.bdȞ@<8? !ccYl)/KsEzBTokdou6<-,W$/UKYfQsijvTEyY'Daij߈ݳhG"Pt*қXôł*<`iXUi u[7mM`\,8jIr,hZEXU.`V${ωx`w*Ij*gZEzB0xGG P:؇%p{g\Jsm|ETI<mc)vnoSX^>Va/sv=!V(m,xQ5ѣ{]:f)+W Y" ZXtjIZVeU.`VB"Y,)bZEzBof1#1!L\,8j쵢V%oIh5p=1"p׊VoFH֋E|)jIh!Si%*1*) 40N|S06&7 >; ֱ"Y il&p  căF|@tɂЀrYeʰa!a5o۟d0g_UX^.+z1$ۙYr$( =|(AM+|*j[ǫ<˭}A 2 %  %g0 E;W#A{@}5 =pA#&6?ʃ#AvHc=8P/`phY8s}EhguMymȚ ⮨{y;opg^gqjڌ۴IU7oӾ}OV\{ojV\ܷ1FK \;oXL H}kz1aJ`J>Tb#T_Qig]bet$SeeC#eze2W #wO]'AaD`rD30R̄>#KѼlϾAV}~߷tnaʼlclhOdniD#$ .:-[X2et(;RtܐZ݁pc?g`DW%ap^b hIX @'XJ:JNKuBf~'(Lq!Ym>/`K Aib)MDDaIv2{ٔx>=~8k'JSBC&=% W2&pY?*A?-ݷz>n 1T7$d{ pmKX!8/A?dq]T!sG|эOz`z(~pU0V#\*nS67g癫0i?ֵG.7ɺu O~*r37K',Su;FN \_~~tŊHOTZDJW$lGzAtEpv?PW"y`;/*]Q׵EJ^P$dR?PWlk(ӓmKHT Ż Wԭ({., /kVkJtζ:5ۢB/,ul oFѠ=l0<O#La/Zno)A A{ؐvp171~ /u؀xg0C{yZ A{ؐva1jhKsǸjvIob^ʋ|w\SOŽ Hd6S=8jr/0 #Dʃ &XZ  Χ*&j%{Q4y:dAh \aF9Kn Jun{b;}3_MR 0%D~.J0UHʃAH. }q]\6ہ.nPZMVc ToDI&o~r5xEG1trM0nZ%gTTURƾ0"\Xkgeku|qwi_c<йoTbV>;0 !:eZljt\9sm@?q(m١gKe#gOoͶo5b\ΡpdMɶ(\m^Qz8vր=gܵBvY0*Z[QpquZqubۊîNdAFEqTT=ug>mҨvfGN,G;P&`5L@ {! {! ]B>rc.dZڹu̦ۦG׺?]w\P3*z||EH6ùle-u[Se#鶖gO=i=HLF.F5mAqN*P8~: PBSMBC G) (S(6o^B= 9B%}e }Bт ǏR[(;Ї 6[Ps(YMjBx(u)]^ ]'doloZXfx8^I3K>m`Vle *\e+>CL}&5#?Ϋf#bPSYSTEM; A0 System commands HELPF; A1 Help files MISC; A2 Miscellaneous CPM+; A3 CP/M Plus UPLOAD; A4 Latest uploads BASIC; A5 Basic programs ADV; A6 Adventure OTHRSYS; B0 Other BBS systems DIRU; B1 Directory and cataloge utilities RCPM; B2 Bulletin board utilities LANG; B3 Languages MODEM; B4 Communication software UTIL; B5 Utilities MODULES; B6 Modules and syslib DISKUTL; C0 Disk maintenance utilities IBMPC; C1 IBM Personal computer CPM86; C2 CP/M-86 software TXTUTL; C3 Text and word processing C; C4 C language software ZCPR; C5 ZCPR3 software SQUSQ; C6 Squeeze and unsqueeze utilites PCSIG; D0 IBM PC/SIG volumes SIGM; E0 SIG/M volumes SPEC1;XYZ A7 SPEC2;XYZ B7 SPEC3;XYZ C7 SYS1;ABC A8 SYS2;ABC B8 SYS3;ABC C8 PRIV;QQZ A9 SYSLOG;CCXY A15 ɀ6DIR æ:ROOT OFF BDIR ) )ĝ@ >2/=Y+2/=Y+2-=Y+U G+ G+ $ :+~@w,U ,+>2-=>2.=Y+2.=@ >2.=Y+}+>}+:@/o:11":] !]L!] U-*&< =Directory names are not loaded &=Directory names removed e! L\Ʌo$*  =Too many directory table entries |}.U.6;~#_=~# L# U<>Ʌo$*  =Too manyDIR : y< B !4 vVSETDIR.MACI  !"#$%&'()*+,-./0123456789:;<=>o?@ABCDEFGHݑi_ncŒFmkt۔-חS->Ƽx2mLOC{Zr4-?كGm!洊 ^&6;zls\|Q,+D^x~}e(jy=2&j6cחS6`$&: m;zlsPlEN1/פq_tcGLd9%ur=#82-P%g[=xbN8jA2tcG ~[~)c92!#eژy8[S(4cigژ&6{&Bu=DYQ,R&/Lx&c8672&8Y.d߿6e]Ru&Bue(j„D ub^|Q,+jA2t&'qä?Kˑ adژ P/a<2APV`DחS6`$&:{L[cdDחS6`(Bp)0A6>^/LI3-<|wXRW&:l5eL[3A6>^/Lغ)lM-YSlS| 8/r)y^mx__ˇO1ئ[vwe(KϯLE-G&$Um؞<ǜV(4&c0Agm!iEl53A4\sibIcR >D!.nm1[lSqQ#-[m5 6G`(}ukSb=x%=1AE.8 1<ΒbbMãC0 )y^ЦVԃqiO#1U<&c0Agm'E EY[H.9j ^(4&c0^a(),غ)lqnq=̳&$`&lsyDqfY^Jsyc0%p`N=9Nc'6ǹ3{&$&=d&۟)Ibmzڂl1MV_XLs{&br^ 5@]xfBGM* 5 1;v69jȄ]t/sTf`{ L臱@ XL,O'{=jA0cv&:Em+jA]޴&~) mPgBm7&:%`zʄ]t/,O'{p&:Lf`{cQ{`|τD {qP-0v { fYLYRT ^Y'{p'yτnLumRYÞ  $&B 5.oS0˫PY^3aq/n3j-ޘ븗`Wyc8Ƅ]ǩ XKb(R9 X $&B :ʄ]&Im :ԙ&3&M[`³$&~) XQH Dq^R0AR0AE.ȄDФ]q{oksZcZnIV_XL#}τ~ aB?L臱`LE*` e`g&$`&„]ǽ<4Y0 mHL9ez)  5 . T΋\&? +S0˓M{&tX+u3["LYȞ 0,„~ ԙP/0A|~eBM"XD^2A|>2&j :ԙЭc&X@b®^40g'3 {&"1A<31%EҞ ID!%1!xTЦ 3S]޴=a,H3a,X X„DP"LֱvS-ڂ1&4!3AW~gOizڂl1洊Grh>n\Ȅ]2`o{&tH3g&Q3A,Lʄӝ HEP; 3g(ԋQH&P:gLw&B&ȥya(ˑ XS :a(R9/raB*aB?0gܙ / 3j6hCfb:ك T΋\ $&b&B  ^NL H~aB8/raB΄6U3M0A2a1KSgB4rop=Q׾+YLo~ˍy]q?ܘx~}CW2i {חnLBҰ|f|=t3S0a3Ac fYÞ :pe fYWQ4|óq4h0v~w `4jdl*H X qrt,`1.g,͖,XgaX&k309/12/85 Jim Lopushinsky SUBMOD is a patch to CP/M 3 SUBMIT.COM to allow execution of .SUB files that are in user 0, and do not have the SYS attribute set. This in effect allows execution of submit files in the same manner as CCP+ allows execution of .COM files. Just run SUBMOD.SUB and the patch will install itself into SUBMIT.COM. Note that this patch is effective only if CCP102 is installed as well, because this version of the CCP passes the User number of the .SUB file for Submit to execute. ---- v{TSUBMOD1.ASM:  !"#$%&'()*+,-./0123456789ok>U*VFVxOcz}OIO'V^,|Ma%*/D?gVZrLԅ"B63]_uL?^ן3=<N}cBe{.ŸQ_(f&itkxԪlO#ÕK?%z~J<~p~J9<Ur8c\:cñmÙM XlTZSz/bpKv+_g`=j_4Q +-9&pzApiV1pKv+_g`=j_4Q +-9&pzApiV1 LASTCALR file not found!...ABORTING' DB CR,LF,LF,BELL,0  JMP LEAVE OPENOK: MVI C,SETRREC LXI D,CALLERFCB CALL BDOS ENDIF ;RBBS ; Do sign-on CALL ILPRT DB CR,LF,LF DB 'New Chat ver ' ; Version = 1.0 DB VERMSD DB '.' DB VERLSD db cr,lf db 'Osborne 1 version' db cr,lf,lf db 'By your command --' DB CR,LF,0 ;Get any potential options next... LDA DEFBUF+1 ORA A JZ NONE1 LDA DEFBUF+2 STA OPT NONE1: ; If the operator wishes to see the caller's name during paging. IF SEEIT ;non-memory mapped display MVI A,TRUE ;Set so we return here STA VWFLG LXI D,OTMSG CALL OLOOP ;Send bytes CALL VEIW ;Get name and send it LXI D,OTMSG CALL OLOOP ;Send bytes MVI A,FALSE ;Set so we don't return STA VWFLG JMP STAR OLOOP: LDAX D CPI '$' RZ MOV C,A INX D ZLOOP: ; The following is used to test if 'send ready' or not... IN TERMS ANI SBIT CPI SRDY JNZ ZLOOP MOV A,C OUT TERMP JMP OLOOP OTMSG: DB CR,LF,LF,'$' ENDIF ;SEEIT non-memory mapped display ; ; IF cseeit ;console display MVI A,TRUE ;Set so we return here STA VWFLG LXI D,OTMSG CALL OLOOP ;Send bytes CALL VEIW ;Get name and send it LXI D,OTMSG CALL OLOOP ;Send bytes MVI A,FALSE ;Set so we don't return STA VWFLG JMP STAR OLOOP: LDAX D CPI '$' RZ MOV C,A INX D ; push h push d call cout pop d pop h JMP OLOOP OTMSG: DB CR,LF,'$' ENDIF ;cseeit ; ; STAR: ; First, move the FNAME into the FCB MVI B,12 ;Number of bytes to move LXI H,FCB ;The 'to' place LXI D,FNAME ;The 'what to move' name LOOP: LDAX D MOV M,A INX H INX D DCR B JNZ LOOP CALL CLRFCB ;Clear certain extensions ; And set the area for the messages... MVI E,USER MVI C,USR CALL BDOS LXI D,FCB MVI C,OPEN CALL BDOS CPI TRUE ;Was it successful? JZ MAKEIT ;Zero = make it the first time ; Now read in the current contents... LXI D,BUFF RLOOP: MVI C,SETDMA PUSH D CALL BDOS LXI D,FCB MVI C,READ CALL BDOS POP D ORA A JNZ FINISHED ;Zero = not finished LXI H,SECT DAD D ;HL has new DMA addr. XCHG JMP RLOOP CLRFCB: XRA A STA FCB+12 STA FCB+32 RET ; We finished reading the file in to buffer FINISHED: XCHG ;Get the last DMA for a double check SHLD POINTR CALL CLRFCB ;Clear the record info for writing CALL SEARCH ;Find the EOF mark and cancel it. ; and then reset the POINTR. ; See if any requests are there MAKDON: IF BELTOG ;Console bell toggled off? LDA KILBEL ORA A ;if bell is OFF, then goto JNZ NOHERE ;message entry option now... ENDIF ; LDA OPT CPI FALSE JZ NONE CPI 'D' JZ DIRECT CPI 'C' JZ SYYES JMP INSTRUC SYYES: MVI A,TRUE STA OPFLG CALL ILPRT DB '-> ',0 ;CHAT prompt JMP READIT ; INSTRUC: ; Otherwise give brief instructions CALL ILPRT DB CR,LF DB 'CHAT conversation utility.' db cr,lf,lf db 'Usage:' DB CR,LF db 'When CHAT is invoked, the bell is rung at the' db cr,lf db 'Sysop''s console, signaling that a remote user' db cr,lf db 'wishes to !"chat" with the Sysop. If the Sysop is' db cr,lf db 'available, you will be signaled to go ahead.' db cr,lf db 'After 60 seconds, if the Sysop is not available,' db cr,lf db 'the program proceeds to a private message entry' db cr,lf db 'system readable only by the Sysop.' DB CR,LF,LF,0 ; NONE: CALL ILPRT DB cr,'Will page Sysop for 60 seconds.' DB CR,LF DB 'Use CTRL-Z to abort paging sooner.' DB CR,LF,LF DB ' >> Paging Sysop << ',0 STARIT: CALL ILPRT ;ring the bell... DB BELL,bell,bell,bell,bell,bell,bell,bell,0 CALL DELAY ;Wait delay time LDA CNT ;get attempt counter DCR A ;Done with alert attempts? STA CNT ;Save new count JNZ STARIT NOHERE: CALL ILPRT DB CR,LF DB 'Sorry, Sysop not available .....' DB CR,LF,lf,0 ; DIRECT: CALL ILPRT db 'You may now leave a message that can be read only' db cr,lf db 'by the Sysop. Carriage returns are not necessary' db cr,lf db 'at the end of lines. Lines will wrap' db cr,lf db 'automatically. You may ABORT message entry with a' db cr,lf db 'CTRL A at any time in the message. Enter your' db cr,lf db 'message and use CTRL S to finish and save the' db cr,lf db 'message.' DB CR,LF,LF DB 0 JMP FIRSTPR DELAY: MVI b,clock DELAY1: lxi h,delayv lxi d,1 delay2: push h ;save the values, consume some time push d push b call cstat ;get console status ora a ;char ready? jnz delay4 ;let's check it out... delay3: pop b ;restore the values pop d pop h dad d jnc delay2 dcr b jnz delay1 ret ;finished this time delay4: call cin ;get character CPI TIRED ;User has cold feet? JZ LEAVE ;Yes? then go back to CP/M cpi byby ;used to using CTRL-C to quit? jz leave ;ok, then back to CP/M CPI ACK ;Was it the right answer? JNZ delay3 ;No? then try again ; lxi sp,stack ;Fix stack CALL ILPRT DB CR,LF,CR,LF DB 'Sysop available, enter CTRL C to exit CHAT' DB CR,LF,BELL DB 'Please go ahead:' DB CR,LF,CR,LF,'-> ',0 ;CHAT prompt JMP READIT FIRSTPR: CALL ILPRT DB CR,LF DB '| CTRL A aborts CTRL S saves message and exits |' DB CR,LF,LF,BELL DB '-> ' ;Freudian message prompt DB 0 READIT: CALL TESTMEM ;Check memory limit CALL CIN ;Get a byte typed CPI BYBY ;^C? JZ LEAVE CPI FINIS ;^S? JZ QUIT ;Yes?, then tidy up CPI ABORT ;Change their mind? JZ STOP ;Yes?, then don't tidy up CPI CR ;A return? JZ CRLF ;Yes?, do the dirty work CPI BACKUP ;A backspace? JZ BACK cpi del ;DELete instead of backspace jz back ;OK, then backspace CPI ' ' JC READIT ;If it equals a value below, then loop CALL PUTNMEM ;Slip it in memory PUSH PSW MOV C,A ;Swap it for output CALL COUT POP B LDA COUNT ;How far we gone on the screen? INR A STA COUNT CPI LIMIT ;Too many characters yet? JZ CRLF CPI LIMIT-8 ;Near the limit? JC READIT MOV A,B ;Find out if we can CPI ' ' ; help'm out and do a JNZ READIT ; return for them... CRLF: LDA OPFLG CPI TRUE ;Which prompt? JZ NEWP CALL ILPRT DB CR,LF DB '-> ' ;MESSAGE prompt DB 0 JMP PASPR NEWP: CALL ILPRT DB CR,LF DB '-> ' ;CHAT prompt DB 0 PASPR: XRA A ;Reset the counter STA COUNT MVI A,CR CALL PUTNMEM MVI A,LF CALL PUTNMEM JMP READIT BACK: LDA COUNT DCR A ;Sub one for a backspace JM READIT ;Already at 0? STA COUNT CALL ILPRT DB BACKUP,' ',BACKUP,0 LHLD POINTR ;Get pointer value MVI A,L ;If it is already ORA H ; a zero then JZ READIT ; skip the rest DCX H ;Sub one for backup SHLD POINTR JMP READIT ; Inline print routine using direct I/O ILPRT: XTHL ILPLP: MOV C,M PUSH H CALL COUT ;Send it to the console POP H INX H MOV A,M ORA A ;Is it a null? JNZ ILPLP XTHL RET ;Message for SYSOP if too many characters in a row. TOMSG: DB CR,LF,LF,'Message entry aborted, excess duplicate characters',CR,LF,'$' ;Enter here when we get too many of the same character in a row. TOERR: CALL ILPRT DB CR,LF,LF DB 'ERROR -> Too many duplicate characters, ABORTING!' DB CR,LF,LF,BELL,0 LHLD ORNPTR ;Get value before anything was entered SHLD POINTR ;Make that the current value LXI D,TOMSG ;Enter a message so SYSOP knows why CALL PLOOP ; nothing was entered QUIT: MVI A,CR CALL PUTNMEM MVI A,LF CALL PUTNMEM CALL PUTNMEM IF NOT RBBS JMP ALMOST ENDIF ;NOT RBBS IF RBBS IF SEEIT or cseeit CALL CALLGET JMP ALMOST ENDIF ;SEEIT or cseeit VEIW: ; Change user area for the LASTCALR file MVI E,CALLU MVI C,USR CALL BDOS DLOOP: CALL GETCALLER MOV C,A CPI EOF JZ ALMOST CPI CR JNZ ALOOP JMP ALMOST ALOOP: CPI ',' ;Do not print the comma JNZ BLOOP MVI A,' ' MOV C,A BLOOP: IF SEEIT IN TERMS ANI SBIT CPI SRDY JNZ BLOOP MOV A,C OUT TERMP LDA VWFLG CPI TRUE JZ DLOOP ENDIF ;SEEIT ; IF cseeit ; IN TERMS ; ANI SBIT ; CPI SRDY ; JNZ BLOOP ; MOV A,C push h push d call cout pop d pop h ; OUT TERMP LDA VWFLG CPI TRUE JZ DLOOP ENDI"F ;cseeit ; CALL PUTNMEM JMP DLOOP ENDIF ;RBBS ; Call this routine each time we enter a byte into the buffer ; and keep track of twits... PUTNMEM: STA TEMP LHLD POINTR MOV B,A MOV M,A INX H SHLD POINTR LHLD POINTR DCX H DCX H MOV A,M CMP B ;The same as B? JZ SETNOT CPI CR JZ SETNOT CPI LF JZ SETNOT XRA A STA MNYCNT LDA TEMP RET ;Enter here when we find the same character typed twice in a row. ;And exit if too many of them, and keep the caller's name. SETNOT: LDA MNYCNT INR A STA MNYCNT CPI TOMANY ;Too many of them? JZ TOERR ;Yes?, then error exit LDA TEMP RET ; Test memory limit... if we are there, then quit TESTMEM: LHLD MEMS ;The number not to exceed XCHG LHLD POINTR ;The number to compare to MOV A,H ;Put MS part in A CMP D RC MOV A,L CMP E RC CALL ILPRT DB CR,LF,LF,BELL DB 'SORRY -> Running low on workspace memory!' DB CR,LF DB ' Please try again another time...' DB CR,LF,LF,0 JMP QUIT MEMS: DW BUFF+MEMLIM ; End of message delimeter. ENDING: DB CR,LF,LF,'+ + + + + + + + + + + + +',CR,LF,CR,LF,'$' ALMOST: IF SEEIT or cseeit LDA VWFLG ;If we are viewing then CPI TRUE ; return for this pass. RZ ENDIF ;SEEIT or cseeit LXI D,ENDING CALL PLOOP JMP GONE ;Used elsewhere... PLOOP: LDAX D CPI '$' RZ CALL PUTNMEM INX D JMP PLOOP GONE: MVI A,EOF CALL PUTNMEM ; Change the user area for the message file MVI E,USER MVI C,USR CALL BDOS LXI D,BUFF ;Beginning of DMA PUSH D ; Write contents to file... WLOOP: POP D PUSH D MVI C,SETDMA CALL BDOS LXI D,FCB MVI C,WRITE CALL BDOS CPI FALSE ;Successful? JNZ WEXIT ;Zero = yes POP H LXI D,SECT DAD D PUSH H MOV A,H ;Get the high byte CMA ;1's compliment MOV D,A ;Save that in D MOV A,L ;Get the low byte CMA ;1's compliment MOV E,A ;Save that in E INX D ;= inverted current DMA addr.+1 LHLD POINTR ;Get # of bytes that were typed DAD D ;Effectively -> NEW - CURRENT = ; # of bytes left to write in HL MOV A,H ;Get the MS value in A INR A ANA A ;Set any flags? (a -1?) JNZ WLOOP ;No, then we have more to write. POP H ;Clean the stack JMP EXIT ; WEXIT: CALL ILPRT DB CR,LF,LF,BELL DB 'ERROR --> Can''t write file.....ABORTING!' DB CR,LF,LF,0 JMP LEAVE ;Leave and do nothing EXIT: LXI D,FCB MVI C,CLOSE CALL BDOS CPI TRUE ;Successful? JNZ LEAVE ;Zero = No CALL ILPRT DB CR,LF,LF,BELL DB 'ERROR --> Can''t close file.......ABORTING!' DB CR,LF,LF,0 LEAVE: MVI C,SETDMA ;Re-set the DMA LXI D,DEFBUF CALL BDOS LDA OLDUSR MOV E,A MVI C,USR CALL BDOS LHLD STACK SPHL ;For 'soft' return RET STOP: CALL ILPRT DB CR,LF,LF DB ' * * * ABORTING! - Nothing saved * * *' DB CR,LF,LF,0 JMP LEAVE ; Create the file MAKEIT: CALL ILPRT DB CR,LF DB '>> Creating message file...' DB CR,LF,LF,0 LXI D,FCB ;We had to create it MVI C,MAKE CALL BDOS CPI TRUE ;successful? LXI H,BUFF SHLD POINTR SHLD ORNPTR JZ MERR ;Zero = No CALL CLRFCB ;Clear extensions JMP MAKDON MERR: CALL ILPRT DB CR,LF,LF,BELL DB 'ERROR --> No directory space or trouble opening' DB CR,LF DB ' the file!' DB CR,LF,LF DB '...Please try again another time.' DB CR,LF,LF,0 JMP EXIT IF RBBS ; This subroutine taken from XMODEM81 GETCALLER: LHLD CALLERLEN XCHG LHLD CALLERPTR MOV A,L SUB E MOV A,H SBB D JC WUZCARY LXI H,0 SHLD CALLERPTR DOITSUM: XCHG LHLD CALLERLEN MOV A,E SUB L MOV A,D SBB H JNC NOCARY LHLD CALLERADR DAD D XCHG MVI C,SETDMA CALL BDOS LXI D,CALLERFCB MVI C,RDRAN CALL BDOS ORA A JNZ READOK LHLD CALLERFCB+33 INX H SHLD CALLERFCB+33 LXI D,SECT LHLD CALLERPTR DAD D SHLD CALLERPTR JMP DOITSUM READOK: LHLD CALLERPTR SHLD CALLERLEN NOCARY: LXI D,DEFBUF MVI C,SETDMA CALL BDOS LXI H,0 SHLD CALLERPTR WUZCARY: XCHG LHLD CALLERADR DAD D XCHG LHLD CALLERLEN MOV A,L ORA H MVI A,EOF RZ LDAX D LHLD CALLERPTR INX H SHLD CALLERPTR RET ENDIF ;RBBS IF SEEIT or cseeit ; Since the last caller's name is in the default buffer, ; get it from there and do not 'type' the name again to the ; SYSOP. CALLGET: LXI D,DEFBUF HLOOP: LDAX D CPI EOF RZ CPI ',' JZ PSCM PSCM1: CALL PUTNMEM INX D JMP HLOOP PSCM: MVI A,' ' JMP PSCM1 ENDIF ;SEEIT ;Search the current file and blank out the EOF mark... SEARCH: LXI D,BUFF ;Point to beginning LHLD POINTR ;Get current position SLOOP: LDAX D ;Move byte into A CPI EOF ;Was it the EOF? JZ NULLIT ;Yep?, then zero it INX D ;No?, then keep searching DCX H ;Decrement the pointer MOV A,H ;Find out if we have no ORA L ; more positions JZ NULLERR ;Just used for a double check JMP SLOOP ;Else, check some more NULLIT: XRA A ;Zero A XCHG ;Get position in HL MOV M,A ;Put a '0' there SHLD POINTR ;Save the areas SHLD ORNPTR RET ; Enter here if we did# not find an EOF mark in the available ; number of positions (double check) NULLERR: CALL ILPRT DB CR,LF,LF DB 'The validity of the file might be questioned.......' DB CR,LF DB 'Did NOT find the end-of-file-mark, and should have!' DB CR,LF,LF,BELL,0 RET CSTAT: JMP $-$ ;Set upon entry CIN: JMP $-$ ; " " " COUT: JMP $-$ ; " " " COUNT: DB 0 POINTR: DS 2 ORNPTR: DS 2 TEMP: DS 1 CNT: DB ALERT OPFLG: DB FALSE VWFLG: DB FALSE OPT: DB FALSE MNYCNT: DS 1 OLDUSR: DS 1 DS 64 STACK: DS 2 BUFF EQU $ ;Message buffer starts here END p?, then zero it INX D ;No?, then keep searching DCX H ;Decrement the pointer MOV A,H ;Find out if we have no ORA L ; more positions JZ NULLERR ;Just used for a double check JMP SLOOP ;Else, check some more NULLIT: XRA A ;Zero A XCHG ;Get position in HL MOV M,A ;Put a '0' there SHLD POINTR ;Save the areas SHLD ORNPTR RET ; Enter here if we didof text (L)ist the message (R)eplace line with new one (S)ave the message (U)pload mode (allows blank lines, use \"/\" to finish)  You may not enter a message until the System Operator has granted you that privilege. Leave a message to the Sysop with the APPLY command if you would like this ability.  To make the message readable only by the person it is addressed to, enter P for private. Anything else will make the message public (normal).  Enter the message number you wish to retrieve. To read a series of messages, enter the first message followed by a plus (+) or minus (-) (for increasing or decreasing order). For example: 10+ or 280- Additionally, the following special characters may be included BEFORE the message number (if M, N or T is entered, no message number need be given): M to read mail (messages to you) N to read new messages left since your last visit T to read "tagged" messages (use selective read to tag msgs) Q to read messages with no prompts if messages are addressed to you K to allow reading of killed (deleted) messages You may mix the special characters, for instance: MN would read New Mail.  The following message fields may be searched: s: = subject field d: = date field f: = from (name) field t: = to (name) field *: = ALL of the above fields If multiple fields are specified, a message with a match in ANY field will be selected. To select only messages which match all fields you've specified, insert an '&' character before any of the above fields. Multiple search fields may separately be specified. Examples: 244+ s:for sale &t:all users 1024- t:all users ft:sysop s:metal  > (Y)es, read this message. (N)o, don't read it. > (R)eply to PREVIOUS message. (Q)uit reading messages. > (T)ag message to read later. (U)ntag message. > (M)odify PREVIOUS message header (subject). Special SYSOP functions: > (K)ill PREVIOUS message > (W)rite PREVIOUS message to disk file > (P)rint message to LST: device > (E)dit sender of PREVIOUS message > (D)elete sender of previous message  Blank lines will now be accepted in the message. Use a single "/" (slash) character on a line (followed by a Return) to end the message. Use the "U"pload command again to return to the normal message entry mode. Sorry, you must be validated by the sysop before you can access the operating system. Use the APPLY command to ask for this priviledge.  Pleas leav you complet addres an you compute typ a messag below. I yo ar FO member leav you FO membe numbe an expiratio dat a th promp belo i #### MM/Y format I yo ar no FO member leav you are cod an phon numbe i ###-###-### format.  > (E)dit sender of PREVIOUS message > (D)elete sender of previous message  Blank lines will now be accepted in the message. Use a single "/" (slash) character on a line (followed by a Return) to end the message. Use the "U"pload command again to return to the normal message entry mode. Sorry, you must be validated by the sysop before you can access the operating system. Use the APPLY command to ask for this p$%&'