teALLDIR COM ALLDIR DOC(9ATTREM AQ |ATTREM CMD?/vATTREM COMGPATTREM MACKBINDEC A _ edBREAKO MACi DCHECK COMu ?DCHECK DOCuDCHECK MQC# GDELALL MQC$ZJ-DISK#1 OF29DIRPAT3 COM4C DIRPAT3 MQC lnFANLED DQCw3|*DIRPAT3 MQNINDPINST COM DPINST MQC.^DSKRAM AQ DSKRAM DQC'yDSKRAM O 8DUT COM<V]DUT DO X{DUT MQCY@ͮEMPTY DOCEMPTY MAC EMUL AQ ?DEMUL CMD!EMUL DQC)ZFANLED AQ ]FANLED MQC}IRFKEY A  d6FKEY DQC6FKEY MAC 9FREE MAC:?HEXDEC A ?HXDC24 MQC MENU AQ 8MENU GENEMENU PARFVNSWPT COM][lNSWPT DQCWNSWPT GEN7NSWPT PARNSWPT RELbPD MAC: PDIR DOCCsPDIR MACHٶREMCH0 A N REMCH0 MACZ (CBTOD AQMevREMCH1 A z 6REMCH1 MAC B8REMDRV AQ REMDRV DQC4REMDRV23MQCRETBIT MACBRS COMMRS MQC+RS16 MQC91 ALLDIR v1.00 by ESKAY Reading directory on drive 2""*."!" ":_<2*|g}o"ڃa_@ *" : a ¦ Sorting file names...*DM  Total files displayed: ** ">H>2>2͙*T] ~/ _:y0p> #~@>:w* "*+"|:=2ʰ | S:=2KF͙! <=~# ~w#w#:wT]*DM*T]x y) #*T] ~#1"*#"*T*| ERROR: memory full, processing buffer... ?""`i""*|g}o"} *}o|g"!""- x#"""M# x=Æ҆Fwx# xP*|/W}/_*҆#"**{ozg";*#""*}|**2}o|g~#&  ͦ   y yG>GO> 'SSdS S}0}o|gb U}o|gyoy0͍>.͍> >    >^@*./*. O*. *"} $.$This is version 1.00 of ALLDIR. Future updates will contain all features described in the source file. ALLDIR displays all files on all drives in all user areas, unless they don't fit in RAM, in which case it only processes up to the file name that filles the buffer. The output is paged, sorted by name, user area and drive. The .MAC file is supplied for reference only, some tools necessary for reassembly have been left out. Bug reports to your local RCPM sysop who will forward them to SYSP CBBS, hopefully. The other functions mentioned in the mAC file should be available in July or August... v|ATTREM.A_  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^oއzvݔj{{nvv\mKMz?z߮%|h>c=:;=}՛ԧGgl1EjnTgUח{1/>S]7WoDz|;>vuzׯ|7[/鐧񳧯?>2O>}tj|"tN:~Zeׯ_IlGgtux /tVO4]7ۛKxzy}wZ|ᅿ;=ou>~v<[UwYk5~}^3/ݩ?{*ϪV:О>7 HeWytP;~UUjC[YWk'7M;;˻һs[My됩>q^/ o==;G~x>K}_h1ulؿyv> /EׇBIx^}Hիv\sgwC!ѧj:ݴӣCxf~wy8}|/_~ҮtݯzxR/z{ia~YO?UI>:|n˧Ǘ!:cN7, ?l:ݴөCn>}/˻#p3՛|Aǧgg> / o͢<:ꬡяp3XUnYG^+}}/T06˗w:ޤãh>޷ux /Dv?7۝U_}}u񯾯۝U_k]Ƿeޕ[W]}|^=\oο_Z_}i{zW=}c<'? /;;s%OǿGg5|YuivyC>Wuȳz߅:똯}wo~1_5jͳh>۩1ww~:>wɟ<:ݴc;<ꇯ>G/󹾫U~^Led_Kq7yex _|Q]SJۡ]_W/ެo?+ⶏW%6b8̦\~)֦\3LUqs0}1|{n0a?0Na֑a 3wa6v?La6嚫~âCV=~!̦\sٔki0ջ0r8}eMŻZFui~M;;; )׌Oe:WF X?+uv72La>}TMMbu[a>\>"o6嚫6}7/wt\sua܄xsr(?<}TGFy}:>)"<앧Yckؔki/l5WO/ 4馝%̦\3>_ms_\ S ~E<}O>U;H^>:ݴ!_1qIg^eY{чtӎRؔki?L4/G7Gg/V}xy sQO0ro`w~zX}V>tiCLl5ô_\"O3:>)oE^޵ToRvl00"n"T%e 1S^YMvlGY|5|Z駟1Iy`|qszq0C}ɣM;+>b}{2̦\3]XtȪ:va>\>/K/a|sqہE<}OG55n.u0waڔki]oŸ`S/ )\MaN7N5a6嚫'gXt_tNotǢcijMf|,l쟝_|}Y5?/V}z> s_\ S ~EU#=:{)ǻ(X$};?:S06u7/||T X!٬O'Uˏ>\v /EytivyTUoR0ex MjSMf~v9Xl^o.nWXzgo{KxQ0<泻ɣ^?{ؔk쟝_E_m)׌ٗ_u/ޅٔkia6嚫 ,z}Wy82s~ٔkivue7W޾cݿɋ݋߆m>pI_ybbb7v[Fa[' _motUڕq}{RY}}n}R/Fa[' _mO7//v?~{R7W޾ؾ]>n}һmh,On6|YW޾y}{aì?5e0edsXtȪi}ӻY]]ey5.4J;qkۢʼi&qwOEMۮ-8fl!!O`؎м ]m$m?2͢ "͚ ͚ ~G *#"> (o&~("^#V#z  22Ð"͠G>([G~bxw[~>2*h Unallocated block # h in file [͚ A͆ >:͆ * >2[*s#r#"!4: $h No duplicate blocks found. h Checking for multiple allocation blocks... ͚ ͚ ʷG> (o&~(^#V#{8h Multiple alloc :  0> ͆ ͚ A͆ >:͆ * h - ^#V#z> ͆ z(!:G~#(#~#(7}}o<<<h *** AFFECTED BLOCK ADDRESS(ES): :G!^#V#xL h h DCHECK completed - check all multiply allocated files, then cause everyone to log off. Delete bad files and IMMEDIATELY execute the FIXMAP command to prevent further damage. $ DIR͚ .>/͚ .͚ .(͚ Z͚ n~# ʬ Y ʙ ʞʞʢss sys syG>GO> ͆ ¸sd 0͆  _y{y0͆ {| }    % 7Æ 0Æ @ >.͆ @ ͆ @ > ͆ > ͆ ҆ ʆ ʆ ʆ ʆ ʆ >^͆ @͆ O*.  * }ʮ $.ɲ DCHECK is a program which supplements the DUPCHECK utility of version 1.41 TurboDOS. When DUPCHECK shows multiple allocation blocks, you should run DCHECK. DCHECK runs up to three passes across the directory, so it may run for up to five minutes on a large hard disk. On the first pass, it simply reads the current disk allocation map. On the second pass, duplicate allocation blocks are collected and unallocated blocks are displayed, along with the filename. Only if there are any duplicate blocks will a third pass be performed, which displays all duplicate block addresses and affected files along with a recommendation as to remedy the problem. A few notes... - you might want to do a ATN-^P sequence before starting DCHECK to record its output to the printer, especially if DUPCHECK showed lots of errors. - DCHECK will not run on any disk with less than 255 allocation blocks. ESKAY, 06-22-85 s: db 20 testc: dw 0 newmap: dw 0 ; new bitmap bitmap: dw 0 ; bitmap base blocka: dwv,DCHECK.MACQ  !"#$%&'()*+,-./012o3456789:;<=>?@ABCDEFGHIJKLMNOPw~|/察>41ӻp9 9;tf:;nifsu:<㡶JӲWm:wˏM]g|_T>ޖog]?m:;/?7r|)_^ʿO맩>\cy\eT%כFަSzX֭r,nYJ=G;,h>}oS}A]~@IO?`^'}rU}Ze[KNˇQhyyuxq뇜><7]9v(yÁѫUSՁoJLp3mJk+v^yv:8/Zاe;\8|\2iަsu0:8/(}vNT^AlJ۶>mXa{Wu0:Uk[_hUbp:}*UZ[=,V~\{Amͱ@i9ˁ=NZ8mz׫V%i׫/h/שlUZ[=,'x\{ցށ\s;=Uzug9P2ɁrЪ)к(s@Io9hUzuvn۞6(9`^'r9,Oq>dY1ˁO,[c%ub8xeoe^'.>q\}8~s95JC_Ω9םYu{2G2??~Ͻ:PIW;Zq8-6<餵>A(9`'Jj\Nˡ=qr:_.j&Wi94ǝr9-|@Iuvgf99(9@IO-99hUb{Ou: J7'R9PR:4فYϽ:םYOXg5Y=%?zvP`ƁmݧWq&83ˁY餵gJӲWm:;/[V#Ik{)ro*cn׫V%i׫lh~@It@IO9,[#V%zv:PןZ8z^LjAm9\~pUWJ`_wf9םqp9Nu:%q)כsLqf%9Ik{OgJf=`(y5f9Paz(sytlYug}`ǝ#m돹]{rY~_*֛ _\.Y%;vǝ㮴yr^7V}1}eVOqhK7ǙYLq(=旼y@ɬIvS9E@IO<>sW4Ox(V>S(9 w7aL6͛45f9h;旼ytlY^'7_w6Jj`t:%oΎ6u{K_捃Du:旼ys%o旼y}`_wf9q+y9i9,(˱xYj9-Ǻ9,[_w׿02 aӻ(5scYeioerG9-|v9˶Zاe;\u:;ۿ/߾>}oS׹:PRSn7zudV8/ۢ%?zvlYd`(n/JmzuЪ>돹]{rYZاe;8/:-e[;hUbp:hS׹~]0yRxò]ad9/^a}oS}7QƇ1[QkC0ʩf9/R,O?m:;G9rG׿ۿ>>-a-4>P7aSX?}oS׹oL;Ƕ@uzsx O:_oq<#m||[+XNrx[+Xr8im/-ܕRk9rHG.ӹoˏ~[yWǝT?r^Isv@u~ȏzsRuzsR} |2?w#;yxi94qZM%Aݒ_L=;IJKLMNOPw~|/察>41ӻvDELALL.MAC[  !"#$%&'()*+,-./0123456789:;o<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ}8?yDj CvK6cQ/[j.Xu>dlꭆR7/K }ԯ]?}ϧϟ?kov4WxקO/n~>/?_<>dlϣJn)rm+mriWſ㿜36=\߮oY7|yD_us}yGݾY7/>t//26x?/7/~x|O?鋟O<}A_o׷?]|ߟu~Q/nYO>dlt}~?9ߟY_u{\O_Y߮o$=}z|ߟ36vyxOκ>?v>yoozg}g]oz~o||=/<}z˻ɓzOO?eF߾8/w6_eqnglw˴^:cۊq?g.ƿ82\ ʸŁq^v/)_>cӶ,jC)[ uzTOj>jt_G?{_~ږ>26Cu36[_el2v\dk{.>_ǩ=v>EF;lw `vRdvWݟ7jm]/[+UF[wި^4zn)fk}`wFm=uV_6c1=w|7wl4ZXv36ik\|ݟ70v>q˻mw~بu3626:L2=:2(#m>NG`wNNi_y̠ Pw2_*3x5ΧӲ=fІR8NKϞeЦ沛A}:Nǥʣ[Os沛n`V26Ӳ=>PFeӸ6:Kvk522̯Mȅ.aԇ*22zngPFee\ 0v v՛y80]=ІR8NKϞeЦ2лջȠMsepwG}8?yD_^?on~/2h\v]ed_vWdN x;N}xAJ8->{[mnn(⭖bn\v\QaIaɽjNjMsw8c&tP iٳ .o.̿/5Q߮xn)sBZRtz0yjeqZ>Z4|q:P iٳ .~o/2h\vsw}4ҫa:\ 0n\a[K>\sĐ#oө6:.`uJA_6zRm?L[Um]ed/>_mm-;ө<Ўޗ7:ΧS~UCmYmU_tC+kxs鋟i=h~=TU叞>үtm}ۋMsept_>aUWg~>|Z'}.22/ڭpfІR/Kgѕ~22zN]ҫꪭk6ow˴-ӶfІRhCoF0uw*ýKvڗedvץWU[Sk3(#mv]U2ɽN2hC)ݡ ڑnl>ji\&N2xu.H_AJrlt~pi-;]5Q3hC)K 6Zvjk߮שfЎ.WGR3x5lt֌MFGֲRu9Զ6c#IX^7w7j-;jCd\(#m.׏V[ja}t5F7Z\Χ0f0#>WP260>PF5cq:}v6j{t75W|:2xudtqdNy\ˮFmN/3hC)Tok&t#k&t@=Qۻ}_}~W5ɕ6cj>\ZC'22 ʈ3h;|v]uSm(Ym.K]ed_`+W2hG^:rig\b8֏@J8qZzaIpy)agteWAJe0#|qsAJq=2:22Fm-kϠ C},7FץWUΠ pϞW-5zd4ѕv]uSed_~lt֓Cvh`uץWOgPF<F'-reWv6ںAJAٗu[7K֡hrmz`}ɠnfޗ FWuAٗn몺Vu`GeRz_]~۹uZ3hC) .V.g]{u˧]k&uZ(#26ZwꪯOުW Ⱦ̣3_*_˛ ^MZw P i5UY_~=e0fl2ZwHGWgubȠf2hC)ݡ ։!WoѥeІR8NK\U}]\=^̿2\36K]{ p^3FW]ed_m=:`}ɠnͼ/LU~ҫ'UG>\:cgҫ'UCm{>\:c0ua{סYwCmY/ˡ}&z[8{h;|%7.-ӶihSe~~K0mUWwS@ף]rmO#/a)cQm?LC>gj|: z I5z9ԥrmAi}ylt:LWT-ѶNQjfЎ4`ˡүTs&tI}Po3NP/Xzc_2Xzctөnk8z9{A沛.>ۯ:_޾Яx.2/zdІR8nlϞeІR8NKϞepۯ2(#2n&6q_vc{,6qZz}, }}s沛n`V2p3'hC) .V.g}}b|䚱k(/K }ԯ]?}ϧϟ?kov4WxקOTHIS IS DISK #1 OF TWO DISKS. READ THE FILE -read.me- ON DISK 2.  EF 1PiQ@":T":S":\2 @<@2F2X +------------------------------------+ | DIRPAT ver 3.40 01/23/86 (c) ESKAY | | TurboDOS directory patch utility | +------------------------------------+ 22222\og" PyxDo you wish to lock drive A: (Y/N) ? [ ]>~Y> @_2P]>2͠²#@*"7:2 $Press RETURN to display directory and begin*":>22~2$Command (or ? for help) [ ]-$ ja8_,!G#(## >,~#fo>!?k Q+=-ADR WGHFLE@U SX$ Enter hex to be found, RET to stop  Hex : >( J{x2!"e$ Enter filename to be found : >0\(y>?(y!E S> 2*"27:O![ͳ(*#[("}2>2*  *** end of file *** *"7:!˾, ! \ ?( #>h } <v:/2$Enter sector number to jump to (in decimal) : II#*+0'$Sector number out of rangeS>2X Sec [*S] Hash=O: FFN Size *S sectors :> (>W,:> (>L, A:!~6(F Found: byte :͡Gg>3o">2M2! ADDR 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF ˽͖~͡,} ~( 0>.,,( }(> ,:*|+ *+*#[ !"7*#[("7! ~ *"!@ Read/write error code ͡. Ignoring error. : K $WARNING - DRIVE NOT LOCKED - PROCEED (Y/N) ? >I~Y(*""?>2!"7 $Hash directory after exiting (Y=YES) ? >2I~Y>(22à Enter filename (no user # = all entries, else only entries in that user) RET=quit : >2>"!"@:(:<=2<=  WARNING - you are about to delete ALL those directory entries. Say "NO" to change your mind : >~N!"7! 2! ~< ##>?(~ ##:w>2 (*"":(@2~:(, UN-DELETE FILE(S) above? >( ~Y 2?>2*#"[C  @2: F WARNING: drive is not locked - proceed anyway? >~Y File will be undeleted to current user area. NOTE that multiple occurrences of the same filename can ALSO be unerased causing garbled information. Enter name of file to be undeleted (RET=quit) : >"!"@!6e#>? = # ERROR: cannot undelete *.*! X DIRPAT COMMANDS (single commands only, no stacking) : ! = HOME (go to sector 0) ? = this message D = change logged drive E = delete (Erase) all entries of one file F = find hex data in directory G = goto record (prompting for decimal number) H = set hashed status (effective after exit) L = locate a file name Q = quit to TurboDOS R = re-read current record and display S = substitute onscreen (hex/ASCII edit) U = UNDELETE a deleted file W = write current record X = toggle hex/decimal sector DISPLAY + = advance pointer to next record and display - = move pointer to previous record and display Use this program with extreme caution! ----> press any key to continue <----X:ʖI ERROR - cannot lock drive. Cause all other users to log off and try again  FATAL ERROR - $.DIR NOT FOUND. Are you not running under TurboDOS? : : _ WARNING - UNABLE TO FIX UNLOCKED DRIVE YOU MUST RUN FIXMAP AND FIXDIR MANUALLY  Now rebuilding disk map - stand by:_ P: :(? Now reorganizing directory - DO NOT ABORT :_*P Time spent in DIRPAT: iQ@":T":S"! Thanks for using DIRPAT, an ESKAY product :_P:_P ERROR - cannot reorganize directory, aborting  ERROR - cannot fix disk map, aborting.  Not authorized to use DIRPAT  NOTE: Operation under TurboDOS 1.3 has not been fully tested. Directory size is reported as 0 and system may crash on exit. Proceed at your own risk. >  = : !00go},|,:=(>,CK$2 ja8_(()(1(C'ʚ Ң>,:= > 2:< >: >322:6 >2͡$A8G 8A8w}7KO$~( 0>.,Ê*}0h|&o0G?:?::,,!a:(xAO:,,$O> ,!a~,#:iQ@G:x2$:S>:,:T>:,:X Enter new drive (A..P, any other = no change) :AQ2F2͋@2T!E~<:!͌!͌!yW!y20w>22$կ~#:,_!_~{AA<2#~:`?52#~:`G~#:S0 OxG7x 2`~:g#~,r!Ҋ >?w:G:O>ͤ~.ž#ͤ}}*¶>?ø#¤#ü> ~{!=_.:;,<>ɾx# #>|}~0G Gbk)))_zW#'{~{0| c|!jT]_z#N{w H@³>ô@³@³í@ñ2 !~#o|g6:!~{w#!:~#E /   !!% y yG>GO> ,;'rrdr r}0,}o|gځ t}o|gyŽy0,|͡}͡ͰͰ ڼ7,0,> ,> , ,,,, , ,>^,@,*./,{*. (O*. ;HQWrHgWrr# xra{_00:00:0000:00:0000:00:00$ DIRvDIRPAT3.MAC^  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQoRSTUVWXYZ[\]훟ݗߴ?-gctz//9=筽[{:Kjon2/Y˫u.v5ﴛ9翾qGU6{?ܶgv'j_˟6/n[Sۼ{}[芗N}qs?m϶?Ry6x_햵W>]mGx\t[tu89Io>ؽpyË >^܍^e;c_{pۼ{mYxleW}OkcGɶiiq$TO˘*19PRy؁6%٧A\6Jy9:Prn:ʁ:>>>9(Uсmwǻ(Jt{<*Q@6ϻ~7@In?%r*ms˱{,a>kɳ%ezA\6PI~~stx}7UJnK/<{J([J؏:;?~6]>7|ʘtp'~6lK'vo>_r_~21 Olt־hxu.v5ﴛ/IygϦ揟/SӍˠ:Pr{c;XÞtڞ9PRX-=Jn=@I)wPN\/܍^e3/Au6K@ɩL/O_}~sTe^^R%yyAeYsmmft~ZroSۏmkAyv08?ͥ׎2=eϥ^< t^U&GyU*QفCY(9MPVyӡ=G9ح< OPVpZ8A>9o:AS%uA,W=E˲w\;Oˡ(Qwvk(JQwhuv:tOAb}12;8W O\~{q8v˿^+~t狃|Eu-Ay㋃|E2:ݚ(9W?}on*ˋgJ؏:;ڻu6/aZsj}mLeL:L7d@iqTح`TWԩ;/{;Prnvk!Z89xr\;ǼGINAuT,{Jn_:Pr4?OJn_2MG9xy-A+LJOy('n:;>vJ< OJT=]m}G;>9({n#8PRo/pkU[w0x>χzumow;uiW[mz<@I \>7P(~7UnuͶmC99PrԴj;݁S^q_}:ʁr7=ޣu/ݔ݁:|Sok}moZ9ֱ9PrMՁr5;JnrbTadz{֭춻:Z=JvXCQR׽΁2UJtup$t΁JJ]< OjMJn~s+Wcun[/2Qp]u]Kobv$t;/vSۼUme^T< ۶;W2zs5< O2enjͳ%jlwQ-q8,WkޣNrPс|7UJҁ[-eλ:Prt[vaa'׎uyO[gyIIygϦOlˡv?e*cazqPDvg5q@mtR%;tphYkVz:֭;ˠ:xس>R׵Jtupϛ^3QwvkA|ҁ<](>9:Pr*ӧrt{Wۑ쯶#87(9({.8x<񕃲;t>o|_ݳ[ G9حSqN_)|8/{N~sgǵ|{˞Sq_frԔ݁:2|_:ح`q8.%٧{^kDZt:(=MÞe;iiҶ}/îgzv<-rS|O_}qP2//9(Ub?v O\ޭsme^F[O}yiW6/veXueqP,ahYo>}AE}%27|TAuJned/TA[goǿƁ:vs |:A[g_28xgǵ|>n{J؏:;|{nR%c.7yoƁy;J|R%c.me^~t@In_ys %u|^_%uq>R%r5;PR[-m;ˠ:PRK8x*TحK͟\yN.Ӎ%u=wJ7`uMnGJNSu_ԃ&71111I>:Pr%e@I~q.:LTd/*uv'ʘtp'._}k77eyn>OvuuYn|n޵_\Kk7/|Ͼ퟾yTƤt=Jv(o|= GNrU9(UbϏcέfm˞*틃R%}qڎ[}anekkGInsPľ9Jl`@I䠮׹ִ[o< Z*틃(>Vv;G݊(Qw|}8:({>< OAsiLQX((|qG=Jjv[ r0x>e.kwNrPpt0x>iànE{5m_QRK8xSq\~Oe@InT2FY;xS,{ǵ#{%GMjlw\?1:y`AQi]֬\oow;u[61;Prt;/vSۼUme^ {(~ܭW[{no权Y׎ZQrt[vS[sz`뚯Zz%٧y;ej[/26JqL.^޶ݡ[|쭯a>evoC[չ5Wc>ߣ6/mQj;ǺYQr[v7V_Wme^㰓N*qI=E˲w\;2yik1Zr7˼ ǵc}12ߣ\n-@Iv^Aeyt~5%jlwQJ8NWC5@Iсs8QRۣ=7`}>vA)|Xs>/g\vvpr5;JnG/wQicqSơ*qes g;(Ub?v O100} O\x5vso}edoAX*uv'.TƤtӺ8_2&{>s\;WtGIn=,a>W%27AO˼xTح}千R%yyA[gyu;܍^ew28PRQT*q:ivJNezo>}AE}%u=AsŁ:a|zvePώu;ޣ6OW7x7UJnu;MÞx:׎]}J-wyZ_[[NqnVmkU|ֲ=m2Vuv\;[?S~A(caA[>anץ]m}iZZ_tʘtp'.][o˪g6ܮ>w}nn28PR@mt`TӺ(v(/?9حX= ՁPNwSu[ Þ.UrP~A(cAŗۿk?nϖVGo\m^Zv/e/S%wyZ_۹PnʱO=[F{ܭeqN/*q:ivJt{ԝÞSѲR{58Pr[v7[[sz8)UⰓNtu8@Ŕp{aֹ6/tu8@I:ZFrupue+:2ܮK9.[unzyPNQp4|\>ͽjpڎ^׏v/糃g >v(Qwvk:xϧ>7vkan- {nzs:]~{qPua|:ց:^|sPAs{ԝ|꣮/fǷZ8A>nz@In1=Qvz6wJnw>MՁ:GJnץT}|OBq0x>Qjuڎ9/{v/Lv/}M/׎>j^(9j-Wcsvr7@I^%u]rwAu0x>˫1;PrJwSuPDn{=sN}wʞa|:;(Ub?v젌Iow/~w?ܵzZ^߶t@I^:(UtnAu0x>˫1;PRۣ=_]< Ӻ|Ϋ~ϋeP(R:(UbXWcGI^:PrjT(9j-Wcϭ\׹mp[ Guu-K[فr5(JO2ow\?\ն^elJ(p]mC{/:[_ÞSѲ=J%}9J89PrG-y7U[sh@In=,a>竵A[geL:L:L_;ŗۿo9v{mm]榥~c)gWoeqN/*q:ivˠ:x|*Z%u=AsÞT,{|vS~A.ةW;zZ=ۼr5F_vܾwm>ֹ=^i/S.K)Wc-6{coZ{+um_~GzRtʘtppy㤞mXݲ/S.ֹޖC;ۼSoWkvg}?w]JAvkw =ϧe;Pr?t%GMۡ((JʴcdrrP)́PNu7}ݧVl_n-@I.8Pr^t/^=Þ.Ur[ G9ȇ9/*uvPƤ˻J]enWkvOIAU9xS,{ǵصTTحݵvyi[/2e*cAէ~ʘtp'.ߴrSoZz21 O\޵soF]RWyJwOIIy?~mku}gm^ZYy^??͟/ӍR%nuPDphYk~GݣN;ˠ:x|cqg!qڞS~A(caaA{ǭu]榥m9v^mU-vyLeL:8-Om9Z]YOu^2&cq\;r7*uv'ʘtttp'.ݗ_wO޷o21 O\ޞ-Wm]6u>5h]?21008~tQ}8R%,Z@In_ys |:^f{e>:݋|:j)o{9X`}>v/J؏:;eL:L:8?.?ڏ|׾'~/?}'21 Ol߷ߵ'_~׾|MOꛟo/uʘttnmocݷmkӳt@In;}[:PRËǺwPĜ`T{Ӻẏ@In(2鰌X㝃eP< O2e~Tحοs=`qȮ=Jt,`WۑSqT777/d/t>A>9`9ώkum^qrgJ>|9:krs8:XGJSu_ԃ&71111e J4UώkG=jT:/GJ$JjvNG{r5;׭nney|k:=w=JtmYd/Tӹ2(J(aOѲ׎se>ߣT?}_u;ݺ֧aוn:GOQr*mݼ*ˋg^,@alx7UJea>XAyv0詽q.:=zq0(|vP8W=_f{OE˲wP\]~#p]ЮϧsϫAsˏ~s?Ury:x<=s=;({.?\~#pfӹgeˏ~s?>{:ϧs1=o>׭{y.<=VͭnesPtR{tRwg-ӹg3\vzukJjv0詽qy?ߣN=w~SX^9^ʞ7ܷu>;PR7uN@I>tnwSu08ڟ׎s4Qrs7绩:xS{ǵs{nwj&ust%uʁ۞y?M3׳qYrOeϭnekXG-sJ7ap>׭׎sϬ{J8 prUgaPvuk|~qO]Pu0T UCՁT׽fǹg?)UnuPtRw0(ӹg?*q/eàL׎잺&7ep[mǺӳuy8Vv쯶#TRUN{ຕr:v:he}8/{ۣ@I䠮fRO(9nw:(Ui(Qw|}8:({>< OAsiLpt{{r8=R%r5;xs93pݞ6/m/v/ڲ>׎Vʕpض2z_[}׎RUN{5΁: nO}ne@iq]q{vk`:`-9w?(trNGJӍGCPu0T U5:}}8:IhF׎6mnu.tRw\;g=e`RF)ʞ._:(`8خN|gǵ\͎kDZX){.?|~aOr5;k{r5;mly\mvbj3ǵi_mGr䨩\9(UbɁ:ݾXƳ;nY[F{2u>Ǿ< Og@i*׭(Ǻ>vjuVg*]KJt[aVƶ[쯶#\INJ(T^:/{AͤNAe=G9}v\;{Wۑ*ˋg@I.8K_tOeE˞>;Ec+v(J6Jy<9/{r0vy<ݣNG9X3*Qn-av%uw}Y,`i=vJOYݣR%Nl@Inr99}%u:9Pr:Pr*˯~Wo*ˋgx<9(U8PRAe(㝃R%Q%u_*Qف:jÞzv\U˱{׎}TTحnju}֖G֥c]]L7J(u[=/{T,{e_/e*Z%%뻩:Pr[r~y7UH=8P}8R%,ZTݺ`Չ(8T<O\nnonon.Ӎ#w۲ޓ'n=yơyO9v{[i)o{:֥=yץc]znΑJ>׳Vsj][o(Wc'_qjme^c^| \\֫Sm9yZݡQ>7mwhWk1=^{7׽nG:_<>5@In;}[:PRËǺwPĜ`T{Ӻẏ@In(2鰌X㝃eP< OvFANLED.DOCW  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQoRSTUVofor<%+cWfm%wsy<|zt?[e^f<={>xz8wK}qTvQԋ|˼p:)զ^snԊ6 7S.cVBkqeM(CqQ'OjS/9cl-W:ƒc{3ڨ'-6 f(ZyU˗/Gxz8Ls!%VV"ԋ|/U{wnm;-W ,{JrS?xKd?.2/zXyx=|ﯟ?|_˼<_it3Bnà? w.yKe~Î0ɛǏ\i{6͠^7U7Cū2CI<7+:ϊ'^==W\tI=͗8(NoϧegOa]ԏmo2×;?|__??~NoϧO,2XyG =x}gwE1[~wag3“xeޕA+oO~|]lhUaĎa3gz.6G.sֶ3Ŧ%}ss3q??rz~89pz8JȮ c;vsS򖒻gSpzCUwTu<#2 b3L+-ZUx)^?zq~Ϧ2Nm$-dq!⠷ߴQMePR\lv;Ua%QZy_yZmUvņ50.^=9>O|%M]Ъ^ 7U<9>O|?cծm <Ӎ7UT%;N2?+@fSߴQwٶelpw\e>3>?q??gWuZ柫jj x\e^_GWϗyN=75^UObJޢ-;5o:xcl-WeD؆1nn[ %ŏᎲjlÀиV.*Zy*y̠ݍ֟qS{TR[E}J˕68F~zV^:4 6^ja-%or%v %̟X5bZmUE}JT.Y2b 6 SmjgĎqS{eĪAmVhN-]ՌSm*͌ڣrD.'Z}.6*?6Cf 5%K̸UiMQnȟe^ev~ux8yt뇷We^I<={n[tҹh]+x'cmeZgӵROZ'{GJxRcyq5YƨMu3yp5qS{eĸ=*jWR+s3Q+WOY0NѪWrZmUYKڝVxv&vx'1NѪ|zlB8$ObZmUYKڝVE̗JT}[a'1njJ4I\d%v4z͋| fTGxIڣR:xʕJ2_xʳ2 \rQŁ˫IڣR:xąnKf[b'1wT^2_^MbK8$+ÓJ;nz/yˋq^,Ʃ6Zu_۪K➱m:8FR]4Ó7Gr k}6^œڶ*ÓJ Ġ#R|9NѪGx[{[^ӌ'\xV Qn32_-/#*Ó7^w?ۦISm2_:$L$MQqp!V #lmoqj̗7OB%-ÓJge6j=._xSqjV /mU%oygeۦ6 Smjǁ'Qdb'1nj̗.ĪAJ˕Z)x_nxœrԪ4cO}.6V^6]6 |نqjV8$L$MQqp!V VZ mԺ̗%$ޗab۩&^>%o$n^tH+݉2 |yTi%oi8FvxN&vx8ғm,yK$:.7\y\h( e*J'S[\eY/eZO}.6*cevG>2 Smj_)yˋ? ctIV;10dW2; Wے͢иzuyuwSՇ?k^|6]Ocm2.̗]i\mE?>gqTRvxMu/{llRIO-iƓPOb(2;;y|鼿_˧yO|6ms0ь'7%owrSc{el_'&%O>69D ?4n[qS㶶mgӵ̗O>69D ­$ݵEi_y#O?=\=|~8?\yts/[Z٩yS[&v]H^UU%ЏÓdZ%W\^?ƪӧ +B.OBkq[vjTuƖ\MJ$1ۖ+CI1Dު%Ϧfv}#VݖlCIy/Gg_}x|_e~z8fXpݱ['6]^&wmpQPFeJ[;-W“*}3Nl<+Hջ#2/_yO||=O>\?N<>p/˯z{|~xÓ7=\'ׇ'We~z8ϗ_ybO||=O>\?ǧNe~z8=}rW/~ϓyx=xp}xr^槇˯zqO=OO<}~N/W~_yp}xrɛW^xOy89<~><_?_p_y^]^^j͏xO'_y埸?9ϼ~N>\~Ջ?>|O<yt_eZ8x29btV%fpJVN[Qw$vlzG˕ S7JS|\eDMyϳ2 \] GqIKnYE]:ofow˼/®'Ը}'}T?]s\ieݶ\150njU1ۖ+CI<.w߾(t3m];.!%1ۖke^_;Vy_n̗/.>eԪ40pTy)ƻO^j_Svxm|Od O%oٶ;.ͦOZÓn{JG߽&S[ q77Z<%bӵ:ZevKIZfҝI/fS=.T:]&vݶ\;vG3&J ?nZZqІ! .ZVxh-Wn|mLضUd.qPrzYxR;5o:%x题DW^W|}iW<~><_><^.W^~uy'O3o9O?~<9?pz+^?|p>j뇷We^I<={n[tҹh]+x'cmeZgӵROZ'{GJxRv$/DIRPAT3.MAN _ or!"#$%&'()*+,  -./0123456789:SQ;<=>?@ABCDEFG+HIJKLMNOPQRSTUVWX]YZ[\]^_`abcdefghijklmno }pqrstuvwxyz{|}~uV,{O;:6^KI<91/-oW'O1e4~Ƕ}p?ǛG ~ۇ^hq/7xȍ㪲l?q=fuO%/O=si-YO\>9yϹ7؛b:i#x~ 5ADV~'ߒL.úbz]0ȏ=[MSPN'qIܽ.LQ/߼-enz]^|U K_|OůrC)??/W?!?y*٬v?lk.r=}CcY{7#MzUj5_O8_O(o?g[=Mׅ̿T??$?ܟǯV^uUyoglb=.F~X( J^Vnל7|˳|Iqϳ(qVT>:ǯE7l5M³|.Ӧ<tɛۧ*˸S'R^^?emdz|.ӦnFsVm&R6nKMmy:ǯ>ϟ>ۻC؟K勻tnK>6ׅ3iv\3GsɖG{=rFe'Bv94;+۟?C؟ _0v[eYx]c3iv\sl5]qw96%^wϤ1>UuA kνׅ=f5?4;%N\O _ퟐ{=o*ӚUe^(uMc=M^Ww?el8z'mNSlw?on+;t~miW4m|ׅI9ͺ.?O Kv94;+&͎I㚋 ^}S{v94;+&͎kKnv96vo9~}~O~O_;tTYe+N#'_|Cc7RTm5^=UF+_< ^G?/YeM\)u1S]n䇥,7_VnʤfkVWkνQf뚹']'~ß)nGswo*t]i߫vUٖWR7qSKν.fxUQH]VGK!7KRy/+7 ^]L}x]؍gwڽ|ó2Z4 ^Yn,r:ms]QW)cl6LWʼq<5^}mw_< ~wy铻C؟K勻_2v[Ue[^qt?csR2ydQ%>뱯^iml$uaCcv[ڎif] q#vo9~}<~{wu|qw?a+f.y?61 Q+ۅ|ׅsǾˡ1|20v6rׅy?=fu+ν8]V=^rLlSsn?2Td:i·^Y Q+[x|ɷ<͗L*cq]TrL{=jRZyȍZuEi!y/rׅscg[<^]+~Q&]񐛅W']So|߫Ƴ8ig#/ɝs._/~mi~;w~ݡsOץrwy_c-bmb]V^~<]^Ws.rhvW<+eZuE\sؽ.L?L._\2}u~//s|Yy/+7 ^}[vz]q'?Wkiu3m- ץ{νs/;.Leɦ5 9{n{!u{{=Mr+s.l-4gx]x1s sUL@1^ڎxo=C؟~vyOW?||]yv?sz?ׅy-5?νf ? wUƟf] _Mw_O _'{.{=y?fsqFua՟+| _uaiS^q؟+tqY+J¼S\3νׅsz{߆~9R~miW&] Yk!7ğqžﴑSFeZ*-Uca[^q-Ue+νGD[xBiWx-<_e[^qTG{=v2m92P631G{J\sAxߣl?!7>Uyɴ~sE+nvν{cQ0|7UKeiR>P3έ( lxyf+~~M6)'lYd{?Fȏcy]NMyfX=bӜ۲C_fr~b_7g|Z^.fxO{`9e3_rhveFj<i8ůA>A&;y.Ӧ"/V,|q0v[u¹ዻ_ľ~} rbiSkGLO} r«ynC{*tw-oןC?t_?WM3>|iCΩ6+hSn^U=Maܿ8mlRyAO;a+v9}'{Cźi4_QY/Oz͹vU+W)=/+q])]:/+slלi2V|C?t_߽ߨLKx-x|ɷ|И2kogK8=q(myŹ,ɹXW5COvEi8lGM`ӤMv8x =9~?2ṯݪy#6*x6;~-xG_}Ͷ[?El7_֯ץJ|^yo+S~lCڪWYl M9;]r[5g4(7AoݡO&^|+r01'khGi[w(=2t Enter cursor offset in hex (normally 20H) k2t Do you want continuous time-display on the screen? (Y or N) %Y>(<2t Inexplicably, WYSE-50 terminal get confused at high baud rates with DIRPAT cursor addressing. If you wish to add delays to Prevent erratic cursor movements, enter "Y", else enter "N" : %Y>(<2t Thanks.c!"""Pt DIRPAT.COM installed. ~> <#t Enter new bytes in hex, one at a time, fill remainder with 0: t : kw#~X0+ +!T]_z#{PA>BPAPA;P:29n !o~#o|g6:9k!p~kXw#^!p:oz~# ʸ  ʥ ʪʪʮ y yG>GO> < 7<0< <<<< < <>^<@<%<+X*. 8O*. Ka{_DIRPAT COMEF vcUDPINST.MCL  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKoǯOyR^<_c~c^r7p.t k~˹_Ôy<Ko/u^ztK;~].ǯN/_擿|}OK4G.?|ZZծjWa41FF-L76a41+7aJ.c|ntK;~'_?qzsݖmZZծg=i9|?|:mNw.FT4QĥeSZ.mkc]՟ͽeyzjtcytK;~].mkc]ܶykyr o-cλޞզۧkm^գLp|| ^a>7S۞Lç=;ݡ/vQaJúaJU?hYnۼvy,yX:^ukOt/ߞQ9L77:cS0xXn~T{%..}ҪvU0[nY_,ۺvtm:{\GΥ3~̭_属Ô.QaʅcMza>7iNakOe;ݡG)]߇)jW s|Jѽ뇿;25烱d&z=1Le]0pUS<”.qiuÔV s.:ͽeyX:^֑}ɞy sli?h\|wU9epUMwSу|0K\a]0U.tֱ߇)]b~]*&^0pUSу)LK~iûrstù?yWX\fyGisx^z~˯pek-L3oE _nX\ hsicr.|t×k=빞gm[wtWs}{/e;>gmr汄ӱwL7s~N,mZijcS>6k.[iiߛsَv՛y80]=ІR8NKϞeЦ2лջȠMsepwG}8?yD_^?on~/2h\v]ed_vWdN vDSKRAM.AE  !"#$%&'()*+,-./0123456789:;<=>?@ABCDo+#n/cr-{mMi:Ѣ$Ӝ~goMl-LޚyMS{~j [qn_1 cYvZΞhZZr4.ie9q?bn[-zjЋ/r&ע6 1 q>{Ϲmd?\Zˈ||ӳίi=ϒV>J+6oI6)kE_ǯίiV~l6}h_.z|Q+cXNm[ZcPo_ǯίi'6ulLJQZ:+x/&o |]e-ooSGZ4oZ4oZc7VN[[2Z4k?H+[.ޒT~|2~O|A\ZƈEK0BZ:=;-kQCÇV~c6>Tvc-\BooAZ~VZlpCےM-k-oo{?ϺFH+W'41sojVuh99/J'|Z;mKN76lvON} ؓ?բԏޥ1Ü_Xvm9nQ+m2=N7Q& 4g-k-+y;sy0aLZZF܌-N_r˭V~c4'2~hi$o=pSZAoocԢCESܪkt>>e,Ǹj$oM[O\O~üբï.ZMZZx_bӶ6rTڤ~xZ㓦1FZ7>sԢ]P~|4FZ74sԢ]P~|LӴ1"kZڝ^+>iχZ49kYkYicDֲ29G䳖v_bMY~,伿eeer9njYkƈg]Nq+G-V#j]Nq1ע0KZ98 \94=^^^j]}LIcr|EKS?>?~VNiEK8>W\.޲-N痘jfo-krH+W'c#_oR. 0oQv'8J+Ñsn+ G-ZڝЏpF'1ע)QZvvǘe#ZpO~}-kK-Z]VvgDkѥ]4Zti\..rH+|㖼t~y)n_/S-%,yKOkZc&OhiwLJ_bt[֢i?>W\_e-Zڝp>J+Ñsn>[6\vQZvvǘe#Z;xGi%iMxK-#j~VI?emɋE/hiwkZZYڝ[yEvјkѥ]s-FԢK!i[vz.KO(rW-=MKү}j>=&C?H+4mZ49kYkY:Ø1&G0o8ZZ>g-NK_ruSoNS-ZڝÇox"|]e-r?_Oy[[֢i?oS-ZڝÇZ;LJ?kgί≜~SAQZG`kO#7WC-ZڝLJ~Vr }lhiwLJ_bmEK~|wi.٦Zڏ=qۃ@g-Zڝ]E-NÇZڏhiwLJuM-ch-NqEy}Y5?/V}z> s_\ S ~EU#=:{)ǻ(X$};?:S06u7/||T X!٬O'Uˏ>\v /Ev[*DSKRAM.DOCN  !"#$%&'()*+,-./0123456789:;<=>?@oABCDEFGHIJKLM߫Rt/ߍ~snqm}O<~?Z}[Rҵ:Z *+^ܭ\| oS27~z̽8qKL\xU%ܯ1Y n:N,${+y>G?dέrs;k;1힮̍6s\mܸͭ :5=풇臿zc^yyjzUs$w_qn9*ܟpnW_U̝cծm꒷S:9\4臷)X9?q.NxD9n?~Wݹھ?/ӻ;sю5 7xpo?>\~vjv|\c۴ʢU)g.ڑ1YŗNx95qe k_ǰ1-ˢڤc[}-ݝ*n?}7cXォ[nUj2|O~gwݳ7Ϥ]Uڷz\Ŝ[6:On?^myݳ׻p-/T5sس>:O~K^ϼ&uɹUjYJ^Q}t%|NqM+^yujYJ^?:O~|·o/^|n{fbt<gv݋yoo7^hс<*n &س>:O~|·o/^|n{fbt<gw݋yoo7^>6Uu>{'ڙXS\#k\nIJ7;en\c%co<\fU<_ݻeO:aab=+^5qs龸h>Ҫ|s5v]Shp#nT&^Ť{,\%*Jd}UĽƞuJ򟿾}t<渦v}ݝ^vϾ:=߽8}}tz{qڝWn>s7>Ҫyߟg)y\'OoGZs7v3'K-kD?]piƞuZRV1edʄ0m))9anh!bX#%Mbyfj> - next group (also .) < - previous group (also ,) Q - exit to TurboDOS + - increment current sector and display (also =) - - decrement current sector and display ! - step to first data group ? or H = this list [ Press any key to continue* %[ ERROR: too high! [ Enter GROUP NUMBER (0000..* +͹ [ ) in hex : [____]R () * 8S 2 2" !O ͳͩ%[ Enter filename to be found : >R (q\ͬ y(Y O  O \O O < /[ FILE NOT FOUND - press any key *  ! = ^#Vͳ%* #" +[ R| !" 2G: _"x0<2* | * +" * " 2 2": =(>; %C K $ %(()(1(>'ʶͰҾ>; : = > 2 : < >:  >32 L: 6 >* $A8G$ Ͱ8A8͔w}7K O~( 0>.; é "O %>2 [ RELATIVE SECTOR : *#:_[ OF * #: _&[ GROUP:SECTOR : * ͹ >:; : ,I%* }0h|&o0G?:?::; ; : G #O *:+" 2  O  !""G : _P+" 2 G>2 y2 F[ DRIVE : A; >:; !˽&͹ ~ #~( 0>.; # }! G~((####~#fo=O> ; > ; !:(xAO:; ; !~; #!  w#> ! a 2 igg g : G(͙ `yg g g : G(͙ g g g !" S # {_8* [ ! y N ˎ0͡ : O>,w#>2 2 $կ¹ ~#: ,0 !0 ~͊ A A <2 #~:1 ? 2 #~:1 G~#:$ 0 OxG x 2 1 ~:8 #~,C ![  >?H : G: O>u ~.o #u N ͕ N ͠ ʕ *‡ >?É #u ͠ #Í > • ~͊ ! =_.:;,<>ɾ|}~͊ 0  ! T]_z# {w W O ( >) O ( O ( " O ! 2 U  !V ~#o|g6: R !W ~R ͊ w#E !W :V a ~#ʵ ʟ ʌ ʑ ʑ ʕ f f f yf f yG>GO> ; « f | }   7; 0; > ; > ; ; ; ; ; ; ; >^; @; $ ; * Ê *. 7 O*. J H` Ẃ Hv Ẃ r# x a{_QD+=-H?GF-<>,.!!E7W $ DSKm80 =dut link dut,hxdc24 copy dut.mac a:;n make millions ld a,(flag) bit 0,a ;if commas flag reset... jr z,skc ;then skvDUT.MAC^  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSoTUVWXYZ[\]_To_دei7[?|_?uQf\֭v|miyC0~V /od]a ::7c[z:Zm\juV}|ݨjY>XuYG0n5u=n4ҦX|MToӷ_h[}{P߿}/OOSyonҦX|M>בuiǛvZ~OQ^VonҦX|MT).ӃE$ezuun/5ƗG^nv_1,^5v~c-nnF__1#-J`nzwgQϿ~{_wc\GXv*m`{s?c-oE2겫yyYZnѬuo=G̻ 2]ݍX# pkaɩL//y8F}ye7â˺<(=wݝϻuZ7o.ӟO}~;::=XA~wwu,o]ru4#(zw(W#(Fkjwâc-8XkY޼黬=mxؽ&X/Գ͛KW3OxT=7/>fQze]_[v_z쳖͛SӏU#eֱѳZ(KKh6=GߕkcJon׶fk:6zֹ/fmurO(6[9\m>XGk+69rӮm~OO6o-"9M">=lE9YjM䘞k-J,osYwsXjMYDr:vǥ-"y*7am=<ToSe]-7smlTokfO=oҦX|nc?չ/f׶Ƕv*mŷ?SKM;-SiS\,Mkw7crحue]ZSm{Jbm֟jƛ[kimֺ.]os׷SiS\,MTOu[\ץ^m[kk[n۩).ߦۿKZW~۩).ӃE$2/?,Jຬk#~YmVu<^ue٭͸,JwwwGPmYeuץKfẞDr*ˇ߼|˺<(=wݝϿ~{_eOӏ:Ze]T߼|k[ַkY}(=.-J`nzwgqno[/Op,"9?^lp#\,J`nzwgq\z'o_____#8bwwK[je}<֑G0x"sLOoGP79Xewe:\8uYy=umnmDTnڵSHK[DTn6ԭ5{JD">_OS)ϗrztp~'Sn/dI>|(=S.ݝvn}|`Qze]_[A6(=mfj&eֱ^^1ueDr*o^>}|`Qze]_[:ZcQץF,7vzOo-JtnY,nn:\xc>3p߭u]꥜jo[eߌ;X޶Q/u HTcn(~dF(38ݲgn:v7~K-f"1HŢNlww᰻DctscZo溎7z{]ML/-JvwgIS9[DR?cFo\/Gpeo3bIׇE$ezhQz\;y-^5vr9X/.eâ߭wws?_~?չm}~`Qzex8\xpDctsOo?ZDr*ӇppOөX(tWݻp`39ǔ"1=b+"ljڬupO$2Gp]Ehc W3,uuk[nfhkSi6?[wsXDTnڵ9,9,raIMbitT8ǔ">-FX9,^5vE$,"y*7zm#(Qm(ue]ZMf)ϗrz-"9M">=lɘE$9=XL1專)ϗrztHtxؕp-_.][nr'>_OSx5s^sǺ^1wh~ܾ\|O$瘞M">-FXjMzӛxmūa=XG0_(:׷{"y*7h붎K۶k׶ѺmH1=mwObHNez_٢˺<(=΢|ubXٕ02u6Ցf_E$}aQzeY,^5FlțpO$}z_g8Xk[Z(t2b{7ƶ[pXiYun=:>OUcd:H4r][o-^5vv">}x8mu=i~g2Ucn:-փE$}:-=<ܯ}xؽc`I>Zj:Z}+Ac{e͢r.wwC:Zy<.~\wOen-^5t8-?xO%EnѢ[-E$Ǻ/W0rA~wwgQzקS W2Fq(3vkQb9:rX'X{=^зgE4Zz먧e:/:żE$OxE$} K.gI>}Tu^-")S(=.-"9-.q9[ūƻ0p8Xzk+ap(3?.g0p8InaprY9l8RץZ.7~7u_~tsfm{"1RNw#8Yeu=]~oK{]O7h%޲,:Zǚmn.jY޼黴V#(Ѷ,"[Hr-[?͟??NczlaIr|)>=[D2nQzE$2=/,Jຬk#~Y?y,"9?Q-9,"ӛFylɘE/OOբ˺<(=wݝvzSi6?[|rwgIno-J,7ݝE$}z*7m٢r.wwG-Xs_l/ârͧ preݺYecץz\/KֲywiٯAfɩL/~#.ڢm+:Ԗuu(7QO7hҖ7u+m]mluJr-"94rE$} Xce7;HNӃvsu{b9UcWC|8XD">-"9O͉-EnѢ[=>-z&} Hbm:ulku_z^N1{}:Ÿ>ZR,߾kQŢbQfnݾkQŢ]nN(3n߿hcֱc]nVhrOvū2fūܬww:ңmuiҖ7ږ:Z%ʵ77liK[뵽9ӂh٢EWw`jc]汫u=տ:2v=r|)'#륜,")ӇO^Z/uۿGpeSn/ÇgHK9"GZ)"Sn/d9Hr|)^sXDK9y:E\ww7HTnZn-"S(=r+9 簈My:E%E$O6[l7'^,"9M">}[=K[j`ӵۻ[DҧbS۶}|˺<(=wݝ/s,"Si}~n-J,7ݝE$}x5S:Zǚmn.겫[icӯlorO$9HNeO?kP.uY=sL9,"98yֺ.tsfrf;sXesXDr~5u}c=^f1lgaƏ),"9OG0~mD__Fmlż̜âK^fo?HtgXc(=pszGͽ p|{cc-˛9:ۏzż̜8XklgHNۏXOױ~Els/:pO$}z:3pױuX]ru[~}=W2rxx7ۏEe%,^5ve:w~<O[~)=ܬww]jC1ƲfGPZ\cݍ5aI8Xk,_:re3m;6VZM5ݰx8~pGlRwq hu,o]֞ƶեѺ{"9Tz HNSDҧs<[,nn:\̜,^5Mk,9,9,9,^5:\p~W8E$}z:dz~W8E$-FhcZ(t6Vhh{LX7ۙSTyk[֗,Q,Jຬky9yhhc{LX7ۙS4fInu(1pOfWwJ8X̩XLXZGk{/62meInūܬww:y~rӶwS-{m.o3簈SiYjIG\_ץ׏KǺw-S]cW_[jdi*:˹ﮣje-HTe{c-.6Vf;/n˨x\-z&}:YAYnֻ;yIEfsXZGDJgΜ"sL%6#]-emњ]OOxXݢwGPb+UcvtO$id1lg/K[{-"_q_ż-"#8?fy~wg9ūy[ݝum\ueyﲮ:ZM'O[X~ȯ~ǚmn.,+N7E~岏.-un~-7E~en_m8x\-7E~e^l'n[ܾ\l'nzmE[X/5K\-Ϸܯ"O[X:,+_~y:Z<`mwW7rOn|MʃUn6=yzm'`]ۼ'O?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]oNuM߾*GPNeVZ.Bxiw='a2?Z7l=~xw>ҏs}{uu7WϞ_}J߾Bϟ܆|NMmaՇW?գWwۛF?y7on݃; B?pϯ;V?{}x~?x׷WoVGW^+m?ǫ7nuoۏoX7uwu#>^\p̓[=|+^ݷ#߼><{?#=zs}x۳lxۛ\i׷Wot{[-si{wy(/sisg {|e.MS=:T]r|u*]c3 g {ꫩiMJ߾*qڕ>f=m8]-5 :ia]fS U{ꫡk8m> ُ/ec{0ll~qyyއYˆ߅=SW}55sצU.*~~iWjj=arU_jn^5Yk5Z4k 50jVîlOKMWCj6M]UjK23rаKq K-ڞ=n? OR <^R]ɰR?a'K)5,5نY.j /si/X.jx<{-si^w:0On2aֲRJd{&<_n/X.j==կ=mOӖUEfy&SOO=mkZuY6Z6]޿}7߾:G7?s=Ճ<}F_GJWx>է/^޾}f^j>goo?/oܾ{y4rQnC7_}֛/n_黫+}N_v߽}i&O5?{s3˷?xۧa<~<~~g|vٷoTW:v駗y/V>}fӗw/o4/.s>Zߩ\jK2iW'K)|9Y.jxZ4aY3oR*,si,5y<6eR<)ORjr~2$rQɰR݅~hUDTIͼ>ޔ*,sia<^P0On)s~2<|f)]Sf^/ҧޔ^*,si/,5y<6eZRJd{6rQٗߟg<}yz<<)}1jRJd{O,5ٞ {l7hПfثCx+{͝^.UvZN뮬ܕQRއlR'۳/\d{aV?{ \d{i{^ī6rQY~ ux^*rQ!x>\*qڕ>f}l?]x7~IxϟT_MMSS}:ԲӦ+n7_7C4rП{>o? {^\˻a<}y6G~zۭ~oŏ4rQ/^n?y<p'}NÏoDn?Rύ?jsx4rQ/^nw7^ڧ͇\}n~s_꣧a<}y_? 0o^\˻TnUv:`w/o4崾`^. .۳ma|އ|ͯIxϟT_MMSS}ڔ^weaWSeuؕwa<+lM 6e>kzjjgmJ=)u֒ky7'}l.t.|,Nay<ݮxӰˑ|{al϶WύѦN鮬?icXO 5>jUcjjr+70{Ru|}x..~~iWardsv:ߞnkU5vf,Gt sVv g,.j4=)9XRJrL-CKwiZux7ˑy:oÌt%e?~d)*.˱if,GtzGk,2e*M.0c92O\Zˑo|0`,Gg_n>tfm~~8|z馌OÌ'Ηz:Xg۳/7סL]Nka0c9YO*캜 ֕iK 3 qRŒ|vz崆ˑz:>fXWe.-Xt=r{ԫjf 3#zi~fӰy}>a=o~ ֕ãyf,Gtlun^||XlNO0SЦ0Gf3+Gu*̡0k)f,G^.a8w{Xla6ú2-siardηae.-vޭ/ˑ6ηgardnv9eYN۳/7a6ú2-siaʎa= k+29ˑ'?˃rlzRvsq}[Z9f=? f--U_.5Ì|v:ߞ} ֕iK {ztfi}NŒNYٜηgarMfyvf,Gz,ٞ=nard9;/7og0c9g墦ardsv:0|}}oXŒOΗZ_YK9p}}f,Gyytvf,G6L}f 3#WmãYi<7۳myytogf]_l6Xf 5f<6t\:㯸\L}C<ͺsnجarN5.˱iPl_/ˑNEMmL}<ٌt={݆y_}f-Wk^0#m:o?Zyۤe5wardN۳/7לN}S:܅ {]K]078{ϦKeU.N=Ì<ηg?^=ϪluCJסL.fXW=hYq˺Y_0#?]~v:_.jjއZV=:h-./sއ[y^0#tC`U8hZeUӺj{~0c92 ʴ̥ZV=:h5wGcnji,7jaʎ4ˑ0c9=tfe0c9=eˑe.'e7kKŒ2Oޞ6-Q{E6`wYU_ooݘ9s:rQ=\lu}`tP-/? }q}>;< aL}f x<4 Y އg}yX mYx`XO_0zjKx`XO_:㯸f3<-a6a=oϾ܄yS[lz:0W\_%|}=SЦ0C}֗>|}ݗ첆^ws{{e Cݘr|̥i5wGއGث T֡Z6 ʴ̥9!̴&RaPzR}]gKS>|/ J/^ZK_+ZgE]p9G,O pp؎м.4s b!t0(t1>] ueCOgM\u6 \Ft @: F`a \u@\عl\l C Qt0ɀ< tFɈYGt\Ur lM361Y.ر3 ñH|:u ,@<w8FFG< t<\t<;t<t<.t tGFGÀuGÊ< t<:t <;t<\t<=uFU]   ERROR: no command line specified. USAGE: EMUL [tail] Where is an 8080 CP/M .COM file which must be currently accessible, and [tail] is an optional command tail which is to be passed to the command file. This message is produced by the emulation mode. NOTE: commercial distribution without authorization strictly prohibited. License fee for commercial use: 20.00 dollars. (c) 1985, S. Kluger, 7120 Skillman #2104, Dallas TX 75231 CP/M-80 available TPA space = 0100..FEFC (65020 bytes). $cqq@EJPsssssssssVsss ccYcYc1!y m!"~ mq BIOS CALL NOT SUPPORTED! $ --------------------------------------------- EMUL Version 2.20 12/07/85 CP/M-80 emulator for CP/M-86 and NEC V30 CPU Copyright 1985 S. Kluger. All Rights Reserved --------------------------------------------- $ NOT V20 OR V30 CPU??? $ERROR: $ NOT FOUND! $ EMUL: end of emulation $v9)EMUL.DOCX  !"#$%&'()*+,-./0123456789:;<=>?@ABCDoEFGHIJKLMNOPQRSTUVW7_>yJxo߯^yyzW^[קdconQ8Da{xs0/ܾ|l+ܾ*]+ʩ[\6A|%y)ڸti^͓wW?}uwϳ7\UtU!F(wl+}؞[Js4/W*hlxA9^5Tiab:`եGhϏ S?,ǟyD;UZ0yfsxmI#ۊ?揧ӏyTD񍢬-C\-Ñc`.BmŃ𥚏d;^4/R}1u{mJ߾|߾魺hlbwI'^)[cl ?U%'_Uc,Tޮ7+O}:CUoԟ b}x0 ~[iv^jAEJ e4vdc|ߟNyyM7lJvZIڸ;2ު˸qV́-Eors־i:A /Ĺ!:vԟ 7-Y4O%։TDׇ vƜXCF[Σ9:/$_R~N~Jƃ@;ϓ^xU<٥v^/x:ne%JK."xcGignys\W$XŹ{^.n(-|4_ࡷtv{*4ziJ!#Ñy.7Col?8D>=-"ϓpP1F"Jyˡozel"IWA<<~{e2ʴ2VtoxH1F|!\f{ GYOdPc:n[.qMz!ʼOD7<+yoQ-GO?kcD Rc']㘗26ӏ7qyKoxwc9'2xP4~KqJGaӤ\}3K[)tD/T\.C(koYt*9ws7s<}4/!ǖt^I=yݓOd[魺h!_gjVi^$;mEfLؒm-Wrwo[z.=Z=4e#}G<Շwy*Too[~xu/y^e06~yyWw<{˓O7=y×s^GϞ^|yzx#EK$P=mܝUf`G"{Zq )Ֆ(i^+eLl+EYvI\vܽztC\vܽ~Xŗą{_e^>z>^/~ؿ!۵VVrNpP+jN VMŪ뒫\D<͠s.J\Uc\U9ћUppٸ|\עZO)wiuݼ\k^~MOwlD[+zFunsYl\OTmXWs*y={[xoꦷ(la3dV=!۵VTJ66ɃU ޮ9Ir2s6Q6mUۛ/'OnܽzEoxڍS:ʼ\}}JKjo: mF_>yalhU%|}˿eTuCz1/W/~g BTJ9_~u]%:/ۊ4t^-elvFANLED.Af  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMoNOPQRSTUVWXYZ[\]^_`abcde|uXZk魮˪/^^=G >~~k>~0_G? os-i-シux˪ep,ڔZƵl֥u+]]xַ?zWX_z?Axַ?Hto}苏w|?<[|WX?x?>~Ws}W_˧zo}xgyxsxַZt~o˧Uz>O/__\_R5,iR/>|J7NË˧uvxO_]%ӫo]A_~[óײWzu?x__/u/^>|=}%e}~_\N.///_K˽^}[Y7~Z>~{_\ۺ|x˻3_x߿c)f̡l+WK_U |gBxu]:O/YVrk+եa̛< yz0;U7k0'fw^ O_z [J-CQǍq K)}k*}vjOȓ's/Y߹[yq J=77;ӘEy7ceUo9< WW0+6tUpu(|6;^ìlwK/Z9hjKFxQYK|(YT^TK᥯o9< aײ|7uf[χkUKjWYj|uU6ᛥWlG?PtԪl­oٔ~MNT^³v*e_0VCی6|Z.n9< aR~cT\bIx j(US[P6wMYBx{ʶߏ}a<ԢLPij^x o?{ 9zsOݧ/^~?iy&Wc/P.='m#K%|5|(\'y Iȫ$Wc]rx>v^MOfGJj᫱]&'m#wono9< 7Kj0͎YU _+[χWm(a>isJj웼|(lJmvXWc9rx>nzo|6;f1|5-Co|6;oWc6COfG]e(a>i+09< I(e*۩l}XoWcηo|6;r:Ǜاv{Pt擶ّSn='O~7OMC٨])~?3_xٟ֒Һ$޻jxle:^LYo[={|ŋ/w/޿?ԛO/o/?ԛx^|z^Wo|um//޽|zJwR?z>/u.u=xRǗ}zuxTo{zex&_~^J\ͧOWwݫ/Sp7w=x2<3VW>xe}pWz_˗ߺ|O?޽./~ۻG]px o?3SuæU |gBx\!z^o/z/_]>~R/^s ye:Grf:Gv0y=r؆둲ɱV5̳2i3ei˧ŋ.MܲoPj l?L!9~R/^sx:ye:Grf:Gv0y=r؆둲ٷ f:Gmk%[oa61nS6Lma6q؆nfj )CxJWzq|Q~yx޿Oó>ëWy˧ܽ˓^*<#ͧO/ӧ9+^ JG+)e;!̮$Ya֮K6҇ +a v%7e_-}(0e _?=yGy֓]y0kWjZ/rޔV,=asSևMQs&L+55xx|xsx{|z;Tシכx^xFˏu{{>yxWN.CwLaf:Gr&c== ZV-Fmp?y!˚<#Pց+Wu>=yҬ-Wʹ EWuZ0vP:^^]i֦eWm(ygr]oaV.+}܆:^57y<=߭aCeԖ>hhʶߏ}a<.C-k<6~۠Q,=9l,=9l,=9lJGuSʤ<.:̳!e} o40۶a¬ lxf.)a2~ vs ݲ o춧_64V\ASمy? ¬~<KzLafSeq-X6EU ai=̾]0ӓ2~{&rfjmMsxf.q޿֥>/NeU=<}Ou|zxԛ/^Omzx}#=w/^}mxfKV>~{_ny?3ulݷ._ǻOF}>~{_w_>{?~iӮ7^}/<󅷟 p8>֛x^|ztnóVꉾxӇzsOӋO/w?ϒF}'zxs {˧zqҧooٶ =f}X6M}wfm0vP:^^]iZƍrnCUÔ5̾]0ۯì2h?nux>e;!ғfMm郆}kf(~?ҋUe? ,=9laԖ>hhZ6<+eǾS]z od-4VmSʶߏ}Zp tmyXzQmm 2pKr]<¬2hT͘CلɱVːc-Wʶߏ}wҦ MׇeӴ\!̳\՛cߝTP6Z-}hNu%̳¬giWsxƪO/^t;cxk.-)k0ڕҋ6ec!̳!vަ&Z)MXZt(e l?\ociYz5ғf-=7e_-}(0e o|i0k/AKW~;ե0y=r¬u(҇ 3#YxQ܇YìyMٷ v~GEc|(vC9la:^0y=[ُ7zYYYOyYkt܇0vAOO^Yz5̾]۞~.=̾]0nOe on cݲjMf]Ar0MMa킱χl>hl3y(u[}Nw/>}X/^> <ܲ$+ZˠM8~tˮ$Ya֮K6MgC}w >KՇe ,}W[r?G\)ϛm4*}vYw¬~<KuvPMgiᄏeIV5z S0vXO_;lfa&c==yGٷ zju0zX+ycwߒcL!a']]`wZZқs8擼%YOyY˕A<ǻކү,= /}Ps&LY~kOO;a킱f2̳6L2<}w{K2<¬}(fm0KO[ُl['зCxWm(zzã^||x9_9ܲoE_0u(f؟ǥ_kȻ>Y~yVG9o6̾]۞~.YeP;ե0<^۞[AIWm}(av%mYO_;lf.0y=0KOٷ iٷ өar[6_ 3܆ٷ x ˠl>hCSLmⰅYeԖ>Mx閲ٷ zauu]%LCanY:>2e8*<4ui=ғfMm郆^C]I}XZky?d)̾]SV=Q7kۄyVG0l!*}ه\o~<K׮0vn{z:̮$y Ů[킱R\ڕK-ZNjl>f:G[EuEӰ fI?ev<5t^0KOf.zk} 'Ln ([6*F}o쎧1̾]C 3#6̾]0nOe oӸ cݲjM0SmauVql>'OLmb¬2|(vCM0 K/҇ 3#-ZNjex=.=̾]Xô c=5̳!]0vXOO;ar<1L2<ɱV7ar:egie++9ؕZo)k}`_w%Zi!a*ZznʾAy7vC'm]IYŮf.;z'L2<¬Oqq&ZCX+ubWGyxx|^xR-zcgrݿzKtf.)a󁱞¬2|(vC} az$0k/pR7kۄٷ nZK?Y6E7K:Ff.zk} 'LHnLa .hjK&̾]۞~v*̾]pN5̾]0nOe cݲ*ڷM7K:F?)0S8lLm"az o57K薲ٷ za0KO0;z'̾]0ӓwNg=ɛ^}09tfIp,X+yc]IYYGY7oɱV7av%YY7Lm 3܆yV7sx&ozV?z^Л_7?{97K= YOY< p\0y=[E}(5t^0k/l):^f]AS[P6a aa¬V˪>Q-z8ٷ x:YOf.8lO?Yj-YS[fUUلٷ v~5ғ66춧6̾]pN5̾]0nOe cݲ*ڷu8_]iCR竫Oʪi4&[u]4lLm"az$az Rݲ+aar?'0z09f2[r:e]Iy?$oz0vR߸a킱v~=ғ6L'zz oYOfo&ZC,=p,[r<1ғ] +I<7K=|#̾]Ӯf/ݒcn)J0R_ 3f]AuEӰ 3¬2(۹eYx F(۹a킬<ٷ xz:t^6ғ܆ٷ vSu(aazd on oSYX+ul ~[54a6q؆Dny՗H?z>/u7>>^>כO_=p>-vXO7K3 Yj|uU6_0mXOc C7aR竫QO0nXOyYy,y cպ|Xhh*}vf:G0na{maԖ>hhSR]z 5 36ғ܆ٷ atarmfjmM6̾]a킱nZKguTKڕZ<]'fm.-y=0y=r؆¬]YҺ6̾]p؞~v*̾]40vAOO^܆ٷ iٷ өar[6_ 36&0Smn-e oarvfI,=fafW] Z'c=-}}N'c uRx</{/^>}Qw˧'pT/(<fEQ]z4lzzfq܌9f:Gr~>ԏnDOY,\swse:G0y=0va{z/_>)ar֖_f]Añ eiJhCSLmⰅYeԖ>Mx閲ٷ zauu]%LCanY:>2e8*<4ui=ғfMm郆^C]I}XZky?d)v)tFANLED.MACW  !"#$%&'()*+,-./0123456789o:;<=>?@ABCDEFGHIJKLMNOPQRSTUVozk iŴi9N߿>,x_)>ßѮbjxE֪>i>&CjxSAW?jZ?2.hevwQrjmmmW.uagzP^iӫC t: ]zu<]\Ģq=iW_u1-X)Z] t:Ĭ:]^6?+<|_՗}_/1NsbZtX_DM~ X_Ƭ7tt\هӟϟ1b^+Oᒛ^?Az>]_Ƭ2Z%qtVxٗ|y8GM:ԦS/Ê֗;[In%qXNimVr1-}-TfXF(ޜFCɭ16͉?=`zc\JӅ(y7'l7zzZӢׯ2Ji!ޜ~6}Cu7]L˫%^v[=WYӅ(y1-xsoz窧0-WcK&ޜu6}Cu7G~5i!ޜv?깮W[j,s7a'=כC-^vXJ.QM9qlQϵDK<:]^6k8-xsziڢ&ޜ?=`^mG~5hěr6}=hzrj׫ěvM߾ø *4],7Pr+Y͉yXu\觥>ɳty9,-Jn%7rY}%rGߔxus|W^[IWc\y-y1q+z-|s|$쵕d~E6{-y1Ea>r1-$+Ŵ%/F/nni):/Ǜ#s8K2(y1 RzTb7#oNS̯oNS-u%_Q%/F>0^}%_QWGɋ ѮK2ލv]bqa>2K2Gp(:$󑺔d~E\{V/ē^ 61MhVz[M|Qx{Srӯjr9; ӲD못cw:]^6kN5],Cڴ\Nim>B׫"M.4y:..b)oW ӲD:PNbZw˱6rY^[N~5MP=-KzZӢtX:5M}h(t:}]-Qc}Yt ]qˬ?OKn%7w?nJn%7۟~鹮2jEkKby [K\Jn% aDZd:옣$a%æNmm%]OVrNu5Jn%ׇ}3N⬿n|(!%ZtjVr0GK\FөQiezZӢKI K\FOk뱔3d称*w=JR6SgϞv;iGM-Twcz6N/K VU֗ɪNc)I6s\r+~s!EWݍe|<<-uÎc-t1GIÎKR|y(|?JrKɭx?s}KݍeYsX.Z/FSkW./GKn%cOZ.%]xq^u)gv>*q<$<$ /W˒.7xxnr>3;܏f~Z[WTfqt^/}Cd%]xqzt5u r$k\Uv.*;dm/^/ #:XnmW%-Rumr+wAA}ki_r+y7as`Ut XFrMuZty9|4ez6.8C]W&rh=]k,-J?vnO{Isd^r+)ZE>N⬨Iu7Q{,%Pc\3:S6]Ex)-hW}Wu/B{qnG6ImGIӞqQ:lbY6}/C/Uæo6/wWcm%mxgƹ¦C h ymQXۅ⼶C,Mk;skIk;u9Qg\3Ov~z%Y[egشe^U۟z,RKRtuWۅeMWkb)?~Z!˨=.а5],-ծJK3:S6]EװW1Ѯ$uϱ$ ym%&eZ`S.k+~3.Jrp۟F/׮B}]Jό6]EWn,M^[p:Rat˨]Euj%ٟ;6ch?r(gyCtz,%/tyEӅw=Z֫]tzZR1|>Vش'E5]kxf>`|{֦9J8$k~Z[?h?]^[dmc-*ZlC^[Bu7sIӞcMWUSt$kaѺi9LFUS%Y[d?Mt]u7Q{,%Y[egشeKI~xGɭw1s˵8~Z<Jn%o8WtzWqFWYӅ(IsMNQۅ˵dmaS:c9dmZۅx[˵';?=?FrY^[d:8֒xfR:l&u7B?JkId^r+o\Wc\JӅ(Ǹz*6W=-i~Z[d=ƕ_0G¦9Ѻi9L})‹gW5lS"$uZ9*;3d%{u_:lx}ג.c\uɭwo|jRmt!-Jn%k  ô9¦BE+ڬB^[vٳ6}SEUtxUwc)*6uI-^vXJq~ӒsI{ݗ3bZ$u$uOJrP^ahVr+|~\QZu7[zq*tj$€MF㢗vٳ6}+l BQQ$sT*l.qNc)aӷ?XJq~Ӓ=/I6|>kIn=jKn%7/;=ŴˬתJ֋iyUo8Wt]u:^ hsIn^=jaӷ?͓wk**6.qNc)gOKR$'rק%æ^w%fu.P=-i)*;æoOk뱔|쪽vUJnzϷzyR]u7y V9M=nx9-xɛ QۅgϮ[M>}k:lx\Aum%u:|*Gе^Q9v8?{v^Nuy:tC%8?<{mO4]߭Jk%FIn^=jaӷ?鬸O;3s'^k,-J/3l:Dii%2GIoh'vUq~(cqq>¦C E5]kO 1TSJ?v 1䵅})t¦v<ƢBu7CIÎqQUFIkIn.[9<3Ov~Z^%]h|8.*Qq~}C6ө]IV شetj$k\q${ݗlzCөUwc)I6Sas>k9Q:lׇ}-y8?P%o .s i%O{gW {Vrӻ~s]Aj,sɭd^}1q>%]xq~}Mm껵]O^NG*l]zI.Jy]Mchm}jx$i%O{$a%\Ko8?iIVٹ$uϽKq}InZ=JR$kԒzŇٟzݕdm/׫/^3s-YW_vC6þdm/׫/~+~ڳsIӞc-gPۅgϮڇ[MYun,G~5V^><3ε$(‹gWljS߭J}jd:8Vt:ZPcgtKI<3Ia_v46uI׫"xOϵ$k\xKy]McOZ[t:..b)~ڳ3lɳ})~s%ٟ;$a%\ό󓝟}I<3_:lyuW:l^w%RKr^x&%<3Ov~ZUv.Isxfu_ۅVza?+*Q^>vC6S%o ㇒xxz uZ^>~*~ڳ3l.-KIӞcMWUSJq>p:RaP^i7:PN3xZU(t1GIdZ%]xq~VcOZd^} ';?-Is.z׫TU$aǸ(gk%fuWg\d3aW^> uOJJdmK2߶ǿ3s׫vC6þdm/׫VXK\ٳ {Vrӻ\w]zu<]\Ģ>%ZW=-i)w]q~rў*W[E,r+ɴ0JrU 6]X~W1ό6]k밾.s,aUYS&]NO_*gMԮJrUVurZ%̓GI<3ǒ=6]k0-]fMڢ$'׫)ѮNӅW[E,%]xqnl:\{]fMڢ$aDZ¦x zIÎaa?>xZUv.x[I^Nk뱔3q%|~Ms/jc,.tqPt ],sI<3ǒNG*lڍwٟ;6}Wr(gu; FKEY for TurboDOS ; By ESKAY 4/85 No Lefts Reversed ; LOC Data# ; LEADIN:: BYTE 0X01 ; LEAD-IN CHARACTER LASTC: BYTE 0 ; PREVIOUS CHAR INFK: BYTE 0 ; FF=IN SEQUENCE FKPTR: WORD 0 ; POINTS TO CURRENT FKEY FKEYS:: BYTE 0 RES 4095 ; LOC Code# ; FKEY:: MOV BX,&LEADIN CMP AL,[BX] JZ ISLI ; JUMP IF IT IS LEADIN INC BX MOV [BX],AL RET ; ; COME HERE IF WE JUST RECEIVED A LEADIN CHARACTER ; ISLI: CMP FKEYS,=0 JNZ DOFK ; FKEYS ARE ENABLED RET ; DOFK: INC BX MOV [BX],AL ; SET PREVIOUS CHAR PUSH DX MOV DL,=1 ; GET CHAR CALL SERIAL# ; ; THIS CHAR IS THE FKEY ; PUSH CX MOV BX,&FKEYS-1 ; HL POINTS TO FKEYS MOV CX,=4095 ; 4095 CHARS TO CHECK MOV AH,AL ; SAVE CHAR BEGOFK: INC BX CMP [BX],AH JZ FNDFK CMP BYTE [BX],=0XFF ;EOF? JZ PDEX INC BX DEC CX NXTFK: CMP BYTE [BX],=0 JZ BEGOFK CMP BYTE [BX],=0XFF JZ PDEX INC BX LOOP NXTFK PDEX: POP CX POP DX RET ; FKEY NOT IN TABLE ; FNDFK: INC BX MOV BYTE INFK,=0XFF MOV AL,[BX] INC BX MOV FKPTR,BX JMPS PDEX ; GETFK:: CMP BYTE INFK,=0 JNZ __X RET ; NO FKEY SEQUENCE ; __X: MOV BX,FKPTR MOV AL,[BX] INC FKPTR OR AL,AL JNZ RETFK MOV BYTE INFK,=0 ; RESET IN-FK FLAG RET ; RETURN (CONTINUE NORMALLY) ; RETFK: POP BX ; KILL RET ADDR RET ; RETURN TO PREVIOUS CALLER END IF IT IS LEADIN INC BX MOV [BX],AL RET ; ; COME HERE IF Wv2FKEY.DOCQ  !"#$%&'()*+,-./0123456789:;<=>?o@ABCDEFGHIJKLMNOPONx2*o9Jl9=9]lti@8ںTԛq'GkJ]xrzttqfRcQU nzEl7uKýM?ë\<9=:<=]+5e"|~jYsL8ElKUY4Snngvi^zɮqXcZ?縷aݽ{n뇿8 6iQǦsoӏꎶo%P84WŦ}l8좶:6mSiO-gZxwu/﹉ç|~xlpce6:Y4g0o/ ^œ#8ݲIq|NfsWԝ3*/odeίlsbo> Vn&ߟi~?ex%Fqt-_ &%+:Ϫ^@n8ON+>㇗-_yx8/?/?+y53]_xc^+W?..Ɓy|q1/P]J9 c&wt^;>6v15o'-|~jު.J8~+UeḷeޤWTv+/īx=Z>a.uP]Jy[ DݜՉ-ǽXͪb.ݍÜ%^EWLn.lY=6Rʞ]4Muco0[rVK==⦫xo|:y2o0 ޿; bRvIstQxL1ONx)OxrzW?~>ǁcywu/lsxS9j7<[qa]>|ׯ?/޿n_@&k:˔gTvqv3b;0_?/~>|,SVQ$Td1/]޿ j,S&vQ[LbZ5Ëq痧 l7uJݜaoa>v˺.8̯a~=˺.yWi~ o_~>LԳL߿7߿8dm.Ӕ^/i^zIλ?}93-mͨqxO?Nxg6pmNjt5R6MxO/oq۫{'%0}-+uvkegulnpp^Ť|n-Λqoq]b$Կ-ذ5̦Ie:siDū~z=Z>%pViIen-ɝavT҇qӏk8\<9=:<=]Sœӣx6)w?@ABCDEo7?})jn?s{}ȺoD##7 S.'F˷Ͻ-34\1D.>[j]ޏ<o˸|ozZYcJo\|7fzqLK9W3&LoX1fb.ȭ9O.~ٖ7.ΗB̅%ޏHbbi푻e#G.X5rc|ßcb_ʹ=5Ʌͮuwoe[1s{Nxd^[3-132ތrʺe77ȾO,w,ocΗ˲ˁ(No]}$f]Soy4\#esnz rYi,3G2{^-z¯_?vrSoڜzwEI:MN<⵾S-z9/χci7fmwftٛjKqCqo؛vN6Xm?rsTضǛT`tss3ǘȣ)^2G(PzS-!z/PTr_u<岙1eDӹfoEŇ/Ͻrɷ?3\o\ty:Xo?Zt]{nӽaN2G7-7i~=rNnnn9rΛt;ROc}N777wz[ΗiMl_M7yԛ6goގ5;J~Yr޽~y^jܿSU:K1w5}L&ϥ=U)ޘ1eDӹfoEv(MENU.A[  !"#$%&'()*+,-./0123456o789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZsL8Η~C}=kv1e,~}4?]?9˖el|cLw>|{Bq/Ї>gx,[z}l'nξ6շVcMS qY*OOܜx{}l54<e# K_βex|enj+}β.˖ţ%˖|rɣެoN7M8>Rq>[]¼?yӛ˛tsaS=Σ:-Ky.G=99ݜnN76<ב<.waޟ0ީ__gnou QOo^9ݜnN76r;_keu.G=tsaS]uvU9Kմrɣf}>ݜnN7lZt]MWxS{R{\M.wa_,|wV0ooޜWS(ߏ,m?O[]ZoyznShVe˲ze5\cMl{eٲ\p7}β.˖.K`S;.կs;jG<=r slôѺ^,[;,]Y=&˖e.g܎uSoe.˖eS\Y}Y=u_Z[S+kn:zjSL vY6]惦vnouXSӈy>VS\)eXwa:ʊzk ϪB5?xβjW)˖enY܅y^?_;5|0>܎z|.aeakχyz;^?np \?_;Zuf4kavM.waޢky|.: ޿ooGolY6_ֶԛ|^wŷY6ŕ9.Uד^O+kLqݱ5,Vۇ^eٴM1ej8BXmM)c۰:5iY.ZAeŚ[}eo+[W'ꕦU_n77Vk;eM1tԦz˲oq^Ij= @=_`ӥG$9 u]{],Lmia]p>}Qap;h1Gg~ZPeQPecia,uRe.Tu[v5lZi25g~Z첰\Χ/5ϰiߧښ,uYnشnه,ݞ,m߰)}wmB]7 /1. zlzthUZ絆,ݞu9q^N,$yd 6uuh&# ug]NO7lǹWMR'y=>⯽ gcXvk;dٲ߿|KY+ߝM>OW $p>=zJe}{?|Bӵ# ug?O`~tYx>qG`t_ݲ|eB]1U^5lY}x6 /wY,jYW֪ue1n [Un}j9 N_F}juFS{r-W:{s^~M>Ok]c;dej1e2_OOn>_gn?ɲen[Viگ#daj1Fx:Bvk;rrpej1e2_OO|~Fxt2𜅗`^1-0ʘM>Ptվۭӗ;,{شS EWZ,rzljo#c7,]\&iUpVY,ݞ_r lWtg}~zdaN뒅].6yp;nm-SsvKԂ> l:tM].lr[//}=da8,u,uY6문F햅=>Oq6Oqˮ?Pϧ_~MeV=ΣMћF햅. =. @]NOtzY}! a9=dajA\[[vn0^[ͲexE˲Yx1Y6޽}lY6/vnG:--˖0ve˨`ӾO-]ËkL,|zwT}L10-u]{]vu92_Pw{tsMnk܎?}6y4;s˲e?Reazl:Lcw= ^ZsVSViߧG}Lea8O_4z:,uYS]8,reLf7i7Yx8MҝI>O. cԫ,L2,qXlYpej1e2_OOn}0,L2,LRM25gn??ee˲Q³B#=j ]Y6޾Y,-<߲?+.g`XS Y8z>3i8TgEMZ[n/󯧧]Xo6[W?$ydaj9 S% /w}K-}eXS}9`ӣCxVVqFºlKk YZjG̺>t.wz].u6폡EW5q9 i,[,QMyjUcVga}}tl1-:,Јyj,SS Me˲c7XkqYY lU,u92_MYZ¹ԫS6WǟL1G]nZeL}Z(ϡ]8 ~ӯG.w,uY^1PZ絆,,ﹿff-Eޜ}S#l~FxY=9 #˖ec իu^kxԴ.Y6޾7Y,cԫ[qz686=:i5bԂ>]`?Ozl5Ev>m,z]జnYZVlY6ZԬ.jųvnG /16l1˝j?P;.:5<MMqe|=)4kͲea˨`ӾO-]v: >OTj?]OOæzV;.կu ,.ݞ_r6|ejG^~$yd2_OOnװinr;Oߏj`t2ʘMSwn}ZxV`jo1Χ/= jujY벰,y `w)lYoZe=.^[x~p_lYG-@]6N6Վgk-Sov8-˖e9nYp;dbw8?+9 p8SvUcY=c¾9. ur֛o`uYx>q^Ij= @=_`ӥGMENU OMECINHIL:: BYTE 3,ESC,"dA",0,0,0 ; INTO HIGHLIGHTINGCOTHIL:: BYTE 3,ESC,"d@",0,0,0 ; OUT OF HIGHLIGHTINGCINREV:: BYTE; PARAMETER FILE FOR 16-BIT MENU ; ; THE FOLLOWING PARAMETERS MUST BE PATCHED TO YOUR TERMINAL'S ; CONTROL SEQUENCES. THERE ARE 7 BYTES AVAILABLE FOR EACH CONTROL SEQUENCE, ; THE FIRST BYTE MUST BE THE COMMAND SEQUENCE LENGTH. ; THE MENU PROGRAM IS INITIALLY CONFIGURED FOR THE BEEHIVE ATL-004. ; CCURUP = 2,0X1B,'A',0,0,0,0 ; CURSOR UP CCURDN = 2,0X1B,'B',0,0,0,0 ; CURSOR DOWN CCURLF = 2,0X1B,'D',0,0,0,0 ; CURSOR LEFT CCURRT = 2,0X1B,'C',0,0,0,0 ; CURSOR RIGHT CHOMEC = 2,0X1B,'H',0,0,0,0 ; HOME CURSOR CURAD1 = 2,0X1B,'F',0,0,0,0 ; CURSOR ADDRESSING STRING 1 CURAD2 = 0XFF ; FF=R/C, 00=C/R CURAD4 = ' ' ; BINARY OFFSET CDISON = 3,0X1B,"-1",0,0,0 ; CURSOR DISPLAY ON CDISOF = 3,0X1B,"-0",0,0,0 ; CURSOR DISPLAY OFF CLEOLN = 2,0X1B,'K',0,0,0,0 ; CLEAR TO END OF LINE CLRSCR = 2,0X1B,'E',0,0,0,0 ; CLEAR SCREEN AND HOME CINHIL = 3,0X1B,"dA",0,0,0 ; INTO HIGHLIGHTING COTHIL = 3,0X1B,"d@",0,0,0 ; OUT OF HIGHLIGHTING CINREV = 3,0X1B,"dP",0,0,0 ; INTO REVERSE COTREV = 3,0X1B,"d@",0,0,0 ; OUT OF REVERSE CLINES = 24 ; NUMBER OF LINES CCOLUM = 80 ; NUMBER OF COLUMNS KEYUP = 'P'-0X40 ; KEY: CURSOR UP KEYDN = 'N'-0X40 ; KEY: CURSOR DOWN KEYXIT = 'X'-0X40 ; KEY: EXIT TO O/S ; THE FOLLOWING SHOULD BE SET TO NON-ZERO TO ALLOW NONPRIVILEGED ; USERS TO EXIT THE MENU NPRIVX = 0 ; ; THE FOLLOWING IS AN EXCERPT FROM THE SOUCE FILE AND IS TO BE USED AS ; A SAMPLE: ; ; +------------------------+ ; | MENU SCREEN DEFINITION | ; +------------------------+ ; ; THE FOLLOWING WORKSPACE CONTAINS THE SCREEN DEFINITIONS WHICH MUST ; BE DEFINED IN THE MENU.PAR FILE IN STRICT ACCORDANCE WITH THE ; SAMPLE PROVIDED BELOW. THE TOTAL CHARACTER COUNT MUST NEVER ; EXCEED 8K! ; SCREEN = "A|DISPLAY DIRECTORY|DIR\\MENU W",0, "B|DISPLAY DRIVE STATS|DRIVE\\MENU W",0, "C|DISPLAY DRIVE A DIRECTORY|DIR A:\\MENU W",0, "D|LOG ONTO MASTER|MASTER",0, 0XFF ; ; EXPLANATION OF EXAMPLE: ; THE VERTICAL BAR IS A FIELD DELIMITER, THE SINGLE QUOTE IS ; A PROMPT DELIMITER. ; A DEFINITION LINE MUST CONTAIN 4 FIELDS: ; 1. THE RESPONSE CHARACTER WHICH MUST BE ONE SINGLE CHARACTER ; AND MAY BE ANY CHARACTER OTHER THAN 0X00,"'",OR "|" ; 2. THE SELECTION TITLE, WHICH MAY BE A STRING OF UP TO 40 ; CHARACTERS ; 3. THE COMMAND, WHICH MAY BE STRUNG WITH BACKSLASHES. IF THE ; COMMAND ENDS IN "MENU W", A MESSAGE WILL BE DISPLAYED BEFORE ; THE SCREEN IS CLEARED WHEN MENU REGAINS CONTROL. NOTES THAT ; IN ORDER TO PLACE one BACKSLASH INTO THE STRING, YOU HAVE TO ; ENTER two BACKSLASHES! ; 4. THE ENDMARK, WHICH IS A NUL (0X00) AND DELIMITS DEFINITION ; LINES. ; ; THE SPECIAL DEFINITION LINE 0XFF DENOTES THE END OF ALL DEFINITIONS ; AND THUS THE END OF THE MENU AND MUST BE PRESENT. ; ; THE FOLLOWING TEXT WILL BE DISPLAYED AT THE TOP OF THE MENU SCREEN: ; TERMINATE WITH DOLLAR SIGN, USE ONLY PRINTABLE ASCII ; BANNER = "YOUR MENU TITLE HERE$"  ; EXPLANATION OF E,d`d@NSWP (c) 1983 by Dave Rand1<:P(. ERROR: TurboDOS ver 1.3 and up only!  Px  NON-PRIVILEGED USER  P*%."+2b+2c+ 2d+2e+!], >?!"h+"o+͗ <Drive :e+< >*>?=_o&$2,:c+A: !"h+#"+"+G!<,[}+(#"h+]*s++"h+#5"{+!"o+"+"+1<:e+2+*h+#} / No files.zXLSʁZ>*o+5zG!c!~( #(##^#V>Ͷ*+K in # files. *+K free.  BXSDNTUVpPfE0LC Ms Ax RFW>Y?!Q- ZGV*o+5~C ,#~O $#~M !6\# (w#w/ not a .COM filec*o+#"o+*h+c!"o+c*o+|+"o+c*h+"o+c]A_PP( -- DRIVE IN USE --c Change disk, press RETURN to continue: >(Pc Which drive? : AcQc] :c+GA2c+G*+K remaining on drive A>:x2c+c Which attributes (2-4,R,G,A)? !+ 6#! ~c#"+*+͎#"+(!C+ (#>>t z234zzzzRGA Delete file? zYc*o+rc5ͺ]2\ 6_^:e(, R/O. Delete? zY(:e2e\\H  Can't delete filec*h+[o+R))))x( ~# x *h++"h+*o++"o+ Erase Tagged or Untagged files (T/U)? zT(UcT>(2j+ Do you wish to be prompted (Y/N/A)? zcAcN(Y> 2+!"o+5~G:j+ N Deleting ---> :+(! Delete (Y/N/A)? zA($Y ͉($r#*h+#}(+Ҽ!"o+c!"o+ ~6(#o*+"+*+"+*+K (*+K).͒*o+5Eì Tagged files = ͒*o+5ͺaì~6#o*+R"+*+R"+_P New drive/user/mask? ! ~c#"+ʹ:\ :c+<=2c+:+ : *>(:e+2e+:] !]^ 6?!\, 2`+~(V# 2`+ Illegal drive code.ce:e+2+:c+2+~08:8A8Q0A2+#~:ȷ*(-0:O>G#~:((08:0 0 2+y2+>2+  ! ^#6#p#~w Copy to drive/user? ! ~c #͔:+:+G:+(:+G:c+ Can't copy to same drive and user.c*o+52++ ~2+ Copy to (filespec)? ! ~c#"+ʹ*+e:] !+] ~#:\=2+!+]ͺ O !]+ 怶w#!\+ >2a+fc Squeeze, Unsqueeze or Reverse (S,U,R)? z2]+S( U(Rc>2+:e+2+( !5~+F x2+:+ A:c+G:+ 7:+G:+ - Skipping, same drive & user -->  :+((* Copying --> ( SQ/USQ -->  Setting -->  to :+ o!+ ~x #!+ ~̍  ~č #t~# F 2 3 4 R/W R/O GLB ARC :+ :+o& 8 :+A>::`+( with CRC:+( ( > E#*h+0c* (~#()~ #"^+ͩ$*{+"+*^+_v *^+:]+Uʖ Rʖ _*^+:]+R(U_!K.i!*^+_ͼ!++ 6!+~ 6Q#6Q#6Q(!+ >. )*^+ͩ!+;%aü!K.; ( Not a SQ file."+"+:+ͤ2+!\+6 ! _F*+aͼ ERROR - Checksum error in file ͚͚go$ Premature EOF on file... aborted.cͼͩ(:+G:c+ :+G:+ȸͩ!++ 2+!"+*{+"++ "+*+܄̈́ͼ:`+!a+~6 Verifying... !++6+<  Can't open file!c*+"f+!"++ !;[f+*+(verify errorcfile ok.[+*{+;*{++ [+ *{+"+_P Destination disk full.ͼc Find what? ! "+ͤ!]~ c ~ 6?# !͝c"o+c Tag what? ! "+ͤ!]~ c !͝c Tagging --> 5> E#*h+85]ͺ> ~?(#*o+5 ~2+ New name, or *? ! "+!lͷ#~ c ?#:+ :+w*o+5^.  *o+*h+#"h+]*s++"h+"o+c!"o+c2+\2\ :e(:e2e:u2u\:+_:+ _!m+ 2+͜+*{+[}() Destination file exists! c:+(G:+ (:+_\_!m  ERROR: Cannot rename file to different user c< !=!o *+0 OUT OF MEMORY?< i` Old name? ! "+!+ͷ:+ c:+2j+ New name? ! "+!+ͷ:+ c!5+͏ B Renaming -->  ~2+ to ͸!m^G:~2~#*h+0>.2 2~(! F:j+(?(G># ɯ/+m> ? ~#= :+ :+ n&} 8 :c+A>:y(> Z>.@*o+#. #~#> oK : (*(#y~#>2+P2+<2+Press ^X to abort, L to advance a line, cr to advance a page. >2+*o+5ͩ1v! *{+"+!K.; ! *{+"+" ͕(X(T(c͚ K(G_ :+<2+:+O:+ :+G: ͂L(l(((2+:+=2+ͼ:+cPc͂ ͕(sX!++6+2+ ~͜2+*{+"+"}++< Can't open file!c:+_:+_ :c+_:+*{+"+"+"++:+2+ͯ<(=:+(:+2+ͯH(!a+~6 (D)ͯ< Destination disk directory full.c!++6+< Can't close file!cͯ+H+<(!+:+(:+(#+ -- unable to set attributes --[+*+Gx(w#"+a[+*++*+8*+"+[}+*+(~#"+*{+"+"}+ + *}+"}+[+*}+ =*h+!<<:\(=2c+:m? >2e+!,~ ,6? ~ 0+# ~##~#~  x >*h+"w++|*w+|ȯ|g}o"w+ #"y+*h++R"s+!"q+*q+"o+[o+*y+"u+(8[y+*o+R"o+(*q+#"q+*s+8*o+5"k+*u+5"m+ ~O##[k+*m+Fwx# |}!"o+"s+#"q+*h+"f+c(́L*q+"o+#"q+*f++"f+| *s+5*k+*s+#"s+*o+5"k+*q+5"m+ #*k+~(+ F, x 0:e+(?(G># ɷ!"+*h+#}! <o*+"+ x '8#8d8 } 8y( 8 > =  8 |${0:c+_.*:G "+^)))))#~&o))))o0$(#:+(5("(}>o}}o}}o}#Ha{_:c+_P(2+ Network Error <*h+͒ab P>/ ͉ ͉}0>.}0*+͎!\w=!\[+͎:c+O0O:( ( :c+x0y( 0py2+s(#* 6?ws(#6 . s(#* 6?ws(#6 #6"+ =_.:;<> !:,!yg)0>g>!or$s%# :`+~# *+O!:, ~W$^"+  ~# (  _!! ~#G~#))))<ů <>( < <E NSWP Version 2.05.25 for TurboDOS Original (c) Dave Rand, 1983,1984 Serial number $ Network CPU : $ TurboDOS version : $ CP/M version : $ $ A - Retag files | Q - Squeeze/Unsqueeze tagged files B - Back one file | R - Rename file(s) C - Copy file | S - Check remaining space D - Delete file | T - Tag file for transfer E - Erase T/U files | U - Untag file F - Find file | V - View file G - Go execute file | W - Wildcard tag of files L - Log new disk/user | Y - Set file status. M - Mass file copy | Z - Change disk P - Print file | ? - Display this help X - Exit to TurboDOS | cr, sp - Forward one file $23"_!"a!!9" J!vD!>2[!2^!J!"e!*_!͚Gp# ; J!"g!D!8>[a!"c!|("J!s#r#J!s#r#*c!+1>*_![e!USQ SECTION (C) DAVE RAND!9" :^!( =2^!:]!! ! >==2^!:]!2]!:\!O:[! ͚¡ O>=2[!yO*a!0##^#Vz(y2\!z>({/|}͚¡ ͚¡ go>2@)")!9")1)*)}o>("A)")")͓(2F)( >3%vD! >3%}2E)v(|("!E)((#45(>~60 G+~v()>~(<~((#4~ >~(~6~(:E)2E)v(:F)( >~(<~(*)^#V#N#z #>3%~*)w#s#r#q#"S)>2G)#^#V#N#~#2){(Z:G)G*)# )8 ####y2)*S)y2) }O|GT]+0)+:)w#s#r#:)w*S)####"S):G)<2G):G)!'( 45  0#!'p2)2)'g2F)2R)<2)2)t>2)!c)g))8+2)!k):)(:)Nw:)/<(GG:)0>4x2)!!|)k)&)!k):)(~2):)Q$w:)"!c)g)&)">2):'!)40>2)"~!k)(~2)!c))2@)*P)))>(c)"Z)!"\)!Z)(~w6#w#w#w()!W))*W)*c)D!>0*)*c):@)(")!9")1)!v͂&*U)͂&!R"U)*)#~ (͇&#>.͇&x(~ (͇&#͇&*P)͂&))*A)~͇&#z 2D)2F)>2C)(N((Q!E)((#45(>~60 G+~O&)>W&W&~6W&:E)2E)O&:F)( >W&(###\&:C)( G:D)͇&>2@)*U)|> *) W&(F#^#V:C)O:D) ͇&2D)y2C)}͇&|F:)(.:L)*P)*N)G:R)Os#r#}  z((#"N)"P)y2R)!E)4~0 2F)!L)~w:'=G >3%:) :)M$!'p:)"2)2)"(:E)w#*J)+2_)])0)!"`)"a)_)!Z)ͫ*c)!Z)(:E)!|)(4!L)5:) *N)6:R)O}(7zW{_~8A+~+}( ~(s#r*N)/w#6#"N)}!R)4>(###!''*N)>+w+Z)կ&);))8x!;)4#4#4#4 ~(h(o&))*)4#4#4ɯGO*)w#w#w#q# !;)w#w#w#w#!;)W)&)!"U)(o(g͚(*U)("U)!W)4#4#4*)G(x(xo$շ###~+~+~H + x ~#x ~+yxX+G]T~w+kb xʍ*"*"*Hi&)))#"*!**Aw#!*"*!*"***A#(TA**~w#!*5 #5***A~w#y2***DM****#:*=2* ?0****"*"*7**xH "+! + "+i`)))#"+A! +6#A*++~wkbA+~w0*+! +Aw#!+5 #455v"NSWPT.DOCO  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIoJKLMN/ڛ o;\>˺l7=rC?mjYq1,2=Ai>DFs.r΍_W\ormm1\[(rVͥep̻TUO?=cʍ;_.]ʘa]ay6MLwssw.;g\xp+Yvo.oͧ72&'YFJ-:m\$ M ˖$,´Zop.Y;UnU+ú&'YWNU2G2sw.eDm[0۽\:/o~ޕO>!g_nw;_={qX ¼vˣg&םhx]\=Ouqn>c~N~q!v4תZ79x2U[N}S0ԣBAoJN_j+.[*U[ Ϸ=&N>NNcx[S|%O' rJVe_E6Mtjm]U_ͧlP>z.ͷ72&'YWnUuճx ?32jm[v_WN> nNjun?1 ޕ.˽V:h[nZM%TI9,&Eep moa`?}.[N^"v*L>}"vbvց'{|:ߺ55 Z3 rrǵŎ׏o?O.7=?._^?qx9aNs7ػrs%TtX+1WW M qGqQ%4Ѣv+㴣1Ǐǹp[h`]ϕP=Ӻlm]ϴ*0s-.wYJ:tvyl]~ݪ&`+U'Ȃju2Ȫ^Vs-s9˃;Бr۪h֔w5pA%öm/b]|?lv};e N繕{UvhjV2 3" ^V=G+d-'N.g\_sa]߹/O̓Wo7?yۋuy=Cs۞~jo.xwU{sy<g_˺<8l\^sU?˛vfSFs!fT]FٻV-8..Oˇy_yS?q_'7xG_|oO.)>zwys|\'\><~ç\|x+.w˝>|;r˝?V"`.UyIdWnuٮ-v$^w?ۦISm2_:$L$MQqp!V #lmoqj̗7NSWPT (D2B2E) EX DE,HL LD HL,(D2B30) LD (D2B2E),HL EX DE,HL LD (D2B30),HL JR A2AC5;A2B21: SCF JR A2B26;A2B25: OR A; NEWSWEEP-TD (NSWPT) PARAMETER FILE ; USE EDITOR TO CHANGE THIS FILE TO SUIT, ; THEN USE THE GEN COMMAND TO PRODUCE "NSWPT.COM" ; CLS = 1B,45 ; CLEAR SCREEN SEQUENCE MAXLIN = 18 ; 24 LINES PER SCREEN ; ; THE FOLLOWING TWO EQUATES ALLOW HIGHLITING OR INVERSE VIDEO. ; THE FIRST BYTE IS THE NUMBER OF BYTES IN THE STRING, FOLLOWED BY ; THE COMMAND STRING. SET TO 00 IF NOT USED. 7 BYTES TOTAL PER STRING. ; REVON = 3,1B,64,60 ; HIGHLIGHT REVOF = 3,1B,64,40 ; NORMAL VIDEO e&2('( G!(4S dĔIY=:REVOF]rh%` qLP br8 Gv2 Fqb P.fh(E)!Ѐu9ByL@v2p@a7Sn6D P3JY@fh(N'$I&HR S" > *>V @*^p  Ҭ`,m]z(u{e{VmzfamfסU+e`G ba4&8nF@x,"8>3l60O+TͮL:Ͱ#\i1i1NSP2!aXAmB0,lb@>~[EITͣ#a CB0-|(aa>@ ]OC!z=Dr 6C)t2 Ɠa~ 3h¬`"Tͮ@:͸VmpB%d\l4jB``ͬA6 -R6 2P,f/'C)t2p6"E@c F,.Lp@f nC)t2 Ɠaa06 S~ҐR)X.(D O @$g*eB*uS6͌6*dl4E9NfQPg3Ly@U7 &s9 3MSPTE#@_A@UaV0P|U+TͰ#Q <΢h @p9ͧ EyR? UeV0X_@!YD ^2b"ELۀ8fQG_RÄ@Nrl4D2 CI  EfA1+[,8  ) EyR? UA ő5DEG \!F_2h( ٶlaҷE~uBSPo˔UFJ"*2VuXdEET\fm%U+e`G bpͲ@«T͸8ͨ;XͰ#Pg3L1e9%dW詛pXAv ]G`rٷe*%kwiHEFJ.U+[JB*.Vd,(  Ҁ`Gq 2'c(s2 ?ChvUc1[6:C[ T>cT2C D%Dmg>V3k863k9U+T~[Ⰼ@^ %`GIe3M!v2 f!\a0me_#+^⡕!+??t8 ?#C0b5#*BV#??L!* _tsے8Gá@Un( ?st052elʑG#+dl86}^FppvC6fmf@t7 #I/:̧!;@>~[  f@ 4l8DVGR2P\0T:K6AD3 NtȀo&(r4 :̧!pXEW詛p-+0-YƏ*DVͰ# p<i6Ng)R?ChvUc1[61[6@Ⰹt&|ʐiqXDf۠ S%Fa2lwq pe``c6#+Tf`cfh(@ )NS),M3e=D󐀤e;NG3(PSE!H@f1Q*TPU| U*XVfס*R"(h@rn㕛]GaPp)eHTn qQuHJTp l4S5NI,&(r40s2h@pk a[( BS6AD3yi7h|  8 "L  l4S2q@ Gͬl8 :,+ T+@0bWL&VG2ƅm(P~[,hP& a`j@7Yf FzZ.KC@ 1h q/'ra@ b!+cYDpuH uH` mlDpuzʖs6sI !` uK @%40f 6 L$*( 8DnU*fٱ[Jk`(Ͱ#PZ # @criiZ$ٵhjBc`,ͬO"+fؑQ .+B0,?Kc&zii[6ыiq[D fq$B9Yqͮ@&fh(e:LsI Gͬc6Ȏ8YqQA*eL600umGUͰ#~w+6Ȏ8CFm-$9XK"8p6H3i6TEBWW]af1U*^Ue&U aU*^HPYU|4CuYЁn*%L*ͨZVe```ͬBV~slQ"1E`G T+->3l f m\TUzJTCKJٷzYQE7Xo‫6y@a"1e"*LVR#+ziheH%F`c63lrj@ /+68CXl՛zYQE,m"< f)s:DSrM1e,F.zio_Y5Ͱ#Q@e6NS@E'pi6Epb7S ì`.VmEpd* Yu{`Td. d*!aV3k8ҼeT l6Ċ1X]`4 ҰpQ8VE [UGٶlaܰ63k6YRݐ!GnįC8 #Ii7pͮV``ͬAV@0Ͱ#': )@f4 Ppi AX@(+5L- Y$p0fgin A[6͌ 8v2&cȀr9@pll2 p-ұU+fٱC63k]`4 2pU8VE KttfmPb+d,(  Ҁ`G!t4'CI 2Nfl6 ,ͨ,ì`,8 & h06mih؄?? l?8 /6·0 6C @w4N}6|EIٴlB]Ucfh(!ٶt=X\8  &s9g Ef+6 "8fQmEp7X3lrnDf۠ 0V0-~PӘ`a$U~p" O*DVͰ#8w&(@o9C}6|EI&P"3@ʬ` `[~ʩ"B0uH uHT͸ڼ k4 faU*rPE|ʙ]hFWV"eN3lj@*a0(ʐKxȸ l4+A0bEGFP( 1de1duKmR2:Eb }aD&Fl4RҶm%ұU+f!P)fh(e9 & o7 Ɠa@e<NgC@mva0#+?r8"+/l yͰPp @}aUidY}aD%F4ͤ-+TUA4xOAC E|JT#KJٷLqvATBmiqXͬLJ*lۦ8ʻ )E"XB e%``#6ZV[#NJFmgS1eN-+f@T+_#-fh( "NFSr< Sa\a0+T (YP dXQC(iQmYp 'Jy@M"I"h\,ErL(x`D IͰ#P4O6 ?ChGTC^Jٵlu^UcR2*fh(e; i~ 3o8Џ1Xj ͯC͸Pz+fa1 `Ga6MqZ>.VmdpB d2El8 : O&6 Yx@:kr\"7X3lì`fס.aS!p53kQ@$g?b8\0a0hW!V6i?cFGxꑕ.Q*cYDqp}fdG'PDp po|.f 9EWF3k`6  6 Q| f 6 2Ͱ#[C @dGS6Ȏ8X"0ՒͯC(ʒ 8RRʍl@e9oLFX &v0fQ@l4 :!n1Dg22bT͸d*ͦ!f4\@Pb +bm [ 8!CUAT("<*  lF. %B;_Dq+ X٠P꒕ +#@fбW0P`PxʍC6V=Q…QETaV0pqP0 6 [4 [híL<*>,(iXd3 Ӓ:+gҵxʖmg?=YU2El**b*V"aZV@`G': )@f4  Y|f@FV_`Ph:Ea`@@ȊaXD [6j[TuW \+fӁfTf@@P*Vͧ6ы4Zۦ8ʻ &!GnįC8  6 4Afh<`3l4D2Άqi7CI 2NFSr< Sa\a0 _+0XlaqmҰpA 8 &9@c6fQl2@ :ͮp,elۦ8aݐFmw2pA \+Sb2PeTܭ̀lF(nfZ :&#a@t7fSt:&#s Ep%[bVGfٱ wa[%ͽBÕ[bVͳc +6\pijX8*+Xٶl`pP +dKt UBٶl`P?T(~fؑQU+P+piiiX8(+q8UB (dEB [EbVͳcz_2+B@H[ѕ*@ >PFЕ`S3k  ܯQ fq $~zj&~ !  Z2"% A :W̨E@gū U@ϋVB3C+Z"1+uPn)P_¡U*_in !XdE@ ٵh`Pa[bTvWRa*B1*uS6͌3n9ETpW੢xi\a0  /0AvP` $`Wl"EB+T#_¡U*_m(euFWE~b+T*%B*>-DH3nU}mg_2EW詛pWة*Lۀ8"M004`a$U}(V3#h @0 S(.P#eF $BXϫFC!!f߁XDTTpAgrBvmP"l f@ 0 >C X'8=GmxDg Պr^ P>-Xd3lㅢxB(84W3@R:Aݖeah"elE"KF~rȤR)Bax<sЦHs8:EkvC(B(\CT|R!e>솨D \σ{E}s3$l@X2_s#T_j( JPs1+dl4 CkNG#y 1ٷh#aY0pU|ʙL^HXAup#{G0p f V8ͭ#{6Ȏ8AmlPT#RY0qk`Fl`ㅛD5uch͢Ca:ñ3>+6Ȏ"8>aȎ 1[FG%=aځ pRb[68GWxG?Kq@ aP0[PaP [Vm'Z <&ո^| y?G`xg#+lPB ~as6 0F6``\ ٷlPB ~as6 0F6``l>b*LV -!=d?2öCx!! `q +bqH>+ y]g!!J#*[ڲ8#fٱْrET*V ?*BEJ . $" Y,8 .Fd3laYP zm8śg10  4,#[V)g.AE"xdU`R ~0Y-PpE1@1٠P@hZ#H@ AD\ +NG3I  Qph 3Bb7 0h(r4& @(1DC )MA`b9 Ńh ̧#I 7M#)@$ Sr5et AECo"bs4ЀH he9&pt A@P DHt0cIs@|DLu2OFQyTs8LSє@t0S i6N`P$ F@o7DcI   FSqe&()$1@C7"1e@ 1@C4Lfm0MƓq@s8LfPh(D DC)t2 Ɠa@ @T DC @f4 1 :&㙘r$Q@E9NfQP^U&)@ Q@U7 &ql2A@0Z #MAl2@ Z +Lql2A@8Z #Su:DcI Z +MCd &q 3MS4 &a 7N!kNfS , 3MQa:Nbh(M D 3MQp<@Z D3Ag2  @i7cI @|s8 'i9 Sa i:Pr1Ȅ@|B r2 (i6Ah(H rQ@"D - fR͹ ^2+@ͺ+@*DVm#pYh8ͺ+@YIT.a1[6ݔ4\"ꏔg1F:'qU(b1(]"8B A(p0n(@_ b0k9^2E#*6Rͭd8 @2+P<]rU(]"+P!!Rm(QTͪdFʹdₑut ";6"?"  2Lk3j;*ő7@u_Á!C}utJ+6PP4<3l0aGbVm&28C~:t\: pm'[+P LP<#n@uv ÅfI(`ڦN(7Dh: ͳ$S6ڦN(l0a:e+wXUxuFVHo@f )bDͶ%P=QeFFTp0t?TpC{7Ƞ f^2"P:,P:$ꌔǏGQ┋0 *2Rh9HFB m(b)f"ʎJw8ReWr! ("Ͷ% :D>H꿓hH|0*6RîG (f"ʏ"P^2eP)P+P!WCyJFm(ulrqFwpPR!E8 YEW* ۞@>*Ue)|qC$ur""r"#R!;?ٴ4Ux 4!Ґ 9H ??36QD P@DaDWlCI"XHF=,ex @2 ڲP'3j@! @F4SqYͻDGm%x h~? '( ͼDͼDP2 ۴JUBP z J3o(ͮ1yGW8㫞P?YH|\U(>-G^*/K 3o*ͮ )F^W8 CP$L+W< B0&z[k@ ]XFWtCt D` W@v ŒxGUzGGG$Q:E+v#sꍔU܉^2e#*4RîOVmv(]*(ނ ٶBY@P! lTP3l9@h9K6 7\j:e+q d@D?Wt}s>W= p ·A~\ c#9 C^w1(>L (2Gmv(nQ H'ql0³xwdAh@eBF#]RH$]2U#)]RH@@0 ,0=Yf'4@d0T"N*$DHR#RR (*  (*R /*R2U* 0n(*-":T~ aІ DQF T~;)eIʅTMRX-I&Rrʓ,z*%NU#*RXpn*%L-/*@ uPʕDVD`E"1* lP#>U*pb A0 5EVL!Diw Ǖ D 1jKz NJ jXZW-_+K^J[Znh;8`5a1%::TUѣIY=:pD`E"1* lP#>U*pb .request syslib sfirst equ 17 snext equ 18 ; extrn bdos,print,crlf,cout,phldc ; begin: lxi sp,stack call print db 0dh,0ah db 'Current disk: (this may take a minute...)',0dh,0ah db ' ',0 MVI C,25 CALL BDOS MVI C,19 mov e,a call 50h lxi h,8 ani 0fh dcr a lp1: dad h dcr a jnz lp1 xchg lxi h,0 lp2: dad d dcr c jnz lp2 call phldc call print db ' total dir entries, ',0 lxi d,5ch push d mvi a,'?' mvi b,12 fill: stax d inx d dcr b jnz fill pop d call wildex call phldc call print db ' entries used.',0dh,0ah,0 rst 0 ; wildex: lxi h,0 shld count mvi c,sfirst call bdos cpi 0ffh rz ;nothing found -- error call moven ;move name wloop: mvi c,snext ;search for next call bdos cpi 0ffh jz done ;finished call moven jmp wloop ; done: ora a lhld count ret ; moven: push psw add a add a add a add a add a adi 80h mov l,a mvi h,0 mov a,m cpi 0e5h jz nof lhld count inx h shld count nof: pop psw lhld tot inx h shld tot ret ; count: dw 0 tot: dw 0 ds 100 stack equ $ end l print db 0dhPDIR stands for "Primitive DIRectory" and can only do one thing: display the current directory. It will display all files on the current drive in the current user area. The display is fast because it is unsorted and contains no size information. This of course means a step backward and puts it on the same level as the built-in DIR command of CP/M, but for a quick check of a disk it is ideal, especially since displaying and sorting very large directories takes quite some time. Another use would be in an outrageously large system where the directory does not fit in RAM (yes, that IS possible!) o;өk7Ϩ; primitive dir ; cseg ; .z80 .request syslib ; start: ld sp,stack call crlf## ld c,32 ld e,0ffh call bdos## ld (curusr),a ld de,fcb ld c,17 call bdos## call eval loop: ld de,fcb ld c,18 call bdos## cp 0ffh jr z,done call eval jr loop ; eval: ld bc,20h ld hl,80h or a jr z,nom evl: add hl,bc dec a jr nz,evl nom: ld a,(curusr) cp (hl) ret nz ; dsply: inc hl ex de,hl call pfn1## call print## db ' ',0 ld a,(col) dec a ld (col),a ret nz ld a,5 ld (col),a jp crlf## ; done: call crlf## rst 0 ; dseg ; curusr: db 0 col: db 5 fcb: db 0,'???????????',0,0,0,0 ds 80 stack equ $ end ually be upgraded to level 4.NOTE: Files are moved from the NEWSTUFF area to thei; REMCH - REMOTE CHANNEL DRIVER EXAMPLE ; MODULE "RemCh0" ; LOC Code# ; ; COM1 SET BAUD RATE ; SETBA_:: MOV CH,=0 ; SET CHANNEL 1 MOV CL,0X55[SI] ; GET E-REGISTER MOV DL,=3 ; SET FUNCTION 3=SET BAUD RATE CALL COMDRV# ; DO IT MOV 0X4F[SI],=BYTE 0XFF ; RETURN TRUE RET ; AND QUIT ; ; COM1 GET BAUD RATE ; GETBD_:: MOV CH,=0 ; SET CHANNEL 1 MOV DL,=4 ; SET FUNCTION 4=GET BAUD RATE CALL COMDRV# MOV 0X4F[SI],AL ; RETURN WITH BAUD IN A RET ; ; COM1 I/O ; INOUT_:: MOV AL,0X54[SI] ; GET DIRECTION FLAG AND AL,=0X80 ; VALID CHAR IN E? JZ __NO1 ; NO, INPUT ONLY MOV CH,=0 CALL CMOUT ; COMMON OUTPUT __NO1: MOV DX,0X6A[SI] MOV BP,0X6C[SI] MOV CX,=128 MOV BX,&COM1BF MOV AL,[BX] PUSH AX MOV AX,DS CALL LDIR# POP AX MOV COM1BF,=BYTE 0 MOV 0X4F[SI],AL RET ; ; COMMON OUTPUT ; CMOUT: MOV CL,0X55[SI] ; GET CHARACTER MOV DL,=2 ; OUTPUT FCN JMP COMDRV# ; DO IT ; ; ATTACH COM CHANNEL ; ATACH_:: MOV DX,&COM1PL CALL LNKPOL# MOV 0X4F[SI],=BYTE 0 RET ; ; DETACH COM CHANNEL ; DETA_:: MOV BX,&COM1PL JMP UNLINK# ; ; POLL ROUTINE ; COM1PL: WORD 0 WORD 0 MOV DL,=0 MOV CH,=0 CALL COMDRV# OR AL,AL JNZ __1 RET ; __1: MOV DL,=1 MOV CH,=0 CALL COMDRV# MOV CH,AL MOV BX,&COM1BF MOV AL,[BX] CMP AL,=0X7F JNZ __2 RET ; __2: CLI INC AL MOV [BX],AL MOV DL,AL MOV DH,=0 ADD BX,DX MOV [BX],CH STI RET ; ; REMCH DATA AREA ; LOC Data# ; COM1BF: BYTE 0 RES 127 ; END ; REMCH - REMOTE CHANNEL DRIVER EXAMPLE ; .Z80 ; NAME ('RemCh0') ; ; ; COM1 SET BAUD RATE ; SETBA@:: LD B,0 ; SET CHANNEL 1 LD C,(IX+31H) ; GET E-REGISTER LD E,3 ; SET FUNCTION 3=SET BAUD RATE CALL COMDRV## ; DO IT LD A,0FFH ; RETURN TRUE JP EXITA## ; AND QUIT ; ; COM1 GET BAUD RATE ; GETBD@:: LD B,0 ; SET CHANNEL 1 LD E,4 ; SET FUNCTION 4=GET BAUD RATE CALL COMDRV## JP EXITA## ; RETURN WITH BAUD IN A ; ; COM1 I/O ; INOUT@:: LD A,(IX+30H) ; GET DIRECTION FLAG AND 80H ; VALID CHAR IN E? JR Z,.NO1 ; NO, INPUT ONLY LD B,0 CALL .CMOUT ; COMMON OUTPUT .NO1: CALL GETDMA## ; GET DMA ADDRESS DI EX DE,HL LD BC,128 LD HL,COM1BF LD A,(HL) LDIR LD HL,COM1BF LD (HL),0 EI JP EXITA## ; ; COMMON OUTPUT ; .CMOUT: LD C,(IX+31H) ; GET CHARACTER LD E,2 ; OUTPUT FCN JP COMDRV## ; DO IT ; ; ATTACH COM CHANNEL ; ATACH@:: LD DE,COM1PL CALL LNKPOL## XOR A JP EXITA## ; ; DETACH COM CHANNEL ; DETA@:: LD HL,COM1PL JP UNLINK## ; ; POLL ROUTINE ; COM1PL: DW 0 DW 0 LD E,0 LD B,0 CALL COMDRV## OR A RET Z LD E,1 LD B,0 CALL COMDRV## LD B,A LD HL,COM1BF LD A,(HL) CP 7FH RET Z DI INC A LD (HL),A LD E,A LD D,0 ADD HL,DE LD (HL),B EI RET ; ; REMCH DATA AREA ; COM1BF: DB 0 DS 127 ; END  LD B,0 ; SET CHANNEL 1 LD E,4 ; SET FUNCTION vWCBTOD.ASMR  !"#$%&'()*+,-./0123456789:;<=>o?@ABCDEFGHIJKLMNOPQ;=yvԓǷkSJ[v.FS2Oˬ˺ѓ?|a6wnTݴ<}\zVڒj<~;<7S^_Zl{ʍex(Յ?LgˡIgSjTϪ\5'-(oT.;ԳҖ<_-w*U?xCu59aUͯN?>?le?|zRɟ>հ?.;PYSO_MgˡhlLzqT[}VO>{vޅw]ۤ˶O=y|ŻgOunrRU/UT?԰}n ]}RNKxzy:sr^?\/0ۡVKMlTgpީ^㷣ڤ^t_6m.Gᝮ.)'=};TiizwϞ-/>|6m꾞m7m*mӓoNjoMܫTMuem˝vy\1ӏaU&ܜʚJ~ BRO}}8=ҫz_\xO>x᝾^ޫn_M}u{tyJˤɟ>հ?.»Nܾԧ/Ng?]:3=y޿{OnOz>\zW=pw/ׯ^w˃\߾דoGϮ|Q>ޅw]Su:9u}}O:e..SٜJzʪW׏/ iyװ{a#~.N%ܔu~{GeŜSiK/.aR=+ׇZO} v+ٓ0za7I{Zo&L[nXa7Զ%o.Jm=vwYt//vm^RP0u9n={r}f[;~jE0ma][Rt1Tܔu~s*GeKӖV -Ejɛ}0av} ua>.1xR䐽 rXu6h蛾͒)P0,]x,*kj%՗Y禨û|ġ a~u 3M+0klZY81ԁ9Paf8Vayk~haz-0ٴ2ٞ740o_3sxǯqsXl9a0zN{m=0ө1e7sm=g>0u0c7sܰ9wau?3?>a>.1a>nq|=wȁf0P03?>Φazf{ǫa0ٴ2L gf{80"<CaoWa18iˆ90a+ y]g!!J#; REMCH - REMOTE CHANNEL DRIVER EXAMPLE ; MODULE "RemCh1" ; LOC Code# ; ; COM1 SET BAUD RATE ; SETBA_:: MOV CH,=1 ; SET CHANNEL 1 MOV CL,0X55[SI] ; GET E-REGISTER MOV DL,=3 ; SET FUNCTION 3=SET BAUD RATE CALL COMDRV# ; DO IT MOV 0X4F[SI],=BYTE 0XFF ; RETURN TRUE RET ; AND QUIT ; ; COM1 GET BAUD RATE ; GETBD_:: MOV CH,=1 ; SET CHANNEL 1 MOV DL,=4 ; SET FUNCTION 4=GET BAUD RATE CALL COMDRV# MOV 0X4F[SI],AL ; RETURN WITH BAUD IN A RET ; ; COM1 I/O ; INOUT_:: MOV AL,0X54[SI] ; GET DIRECTION FLAG AND AL,=0X80 ; VALID CHAR IN E? JZ __NO1 ; NO, INPUT ONLY MOV CH,=1 CALL CMOUT ; COMMON OUTPUT __NO1: MOV DX,0X6A[SI] MOV BP,0X6C[SI] MOV CX,=128 MOV BX,&COM1BF MOV AL,[BX] PUSH AX MOV AX,DS CALL LDIR# POP AX MOV COM1BF,=BYTE 0 MOV 0X4F[SI],AL RET ; ; COMMON OUTPUT ; CMOUT: MOV CL,0X55[SI] ; GET CHARACTER MOV DL,=2 ; OUTPUT FCN JMP COMDRV# ; DO IT ; ; ATTACH COM CHANNEL ; ATACH_:: MOV DX,&COM1PL CALL LNKPOL# MOV 0X4F[SI],=BYTE 0 RET ; ; DETACH COM CHANNEL ; DETA_:: MOV BX,&COM1PL JMP UNLINK# ; ; POLL ROUTINE ; COM1PL: WORD 0 WORD 0 MOV DL,=0 MOV CH,=1 CALL COMDRV# OR AL,AL JNZ __1 RET ; __1: MOV DL,=1 MOV CH,=1 CALL COMDRV# MOV CH,AL MOV BX,&COM1BF MOV AL,[BX] CMP AL,=0X7F JNZ __2 RET ; __2: CLI INC AL MOV [BX],AL MOV DL,AL MOV DH,=0 ADD BX,DX MOV [BX],CH STI RET ; ; REMCH DATA AREA ; LOC Data# ; COM1BF: BYTE 0 RES 127 ; END ; REMCH - REMOTE CHANNEL DRIVER EXAMPLE ; .Z80 ; NAME ('RemCh1') ; ; ; COM1 SET BAUD RATE ; SETBA@:: LD B,1 ; SET CHANNEL 1 LD C,(IX+31H) ; GET E-REGISTER LD E,3 ; SET FUNCTION 3=SET BAUD RATE CALL COMDRV## ; DO IT LD A,0FFH ; RETURN TRUE JP EXITA## ; AND QUIT ; ; COM1 GET BAUD RATE ; GETBD@:: LD B,1 ; SET CHANNEL 1 LD E,4 ; SET FUNCTION 4=GET BAUD RATE CALL COMDRV## JP EXITA## ; RETURN WITH BAUD IN A ; ; COM1 I/O ; INOUT@:: LD A,(IX+30H) ; GET DIRECTION FLAG AND 80H ; VALID CHAR IN E? JR Z,.NO1 ; NO, INPUT ONLY LD B,1 CALL .CMOUT ; COMMON OUTPUT .NO1: CALL GETDMA## ; GET DMA ADDRESS DI EX DE,HL LD BC,128 LD HL,COM1BF LD A,(HL) LDIR LD HL,COM1BF LD (HL),0 EI JP EXITA## ; ; COMMON OUTPUT ; .CMOUT: LD C,(IX+31H) ; GET CHARACTER LD E,2 ; OUTPUT FCN JP COMDRV## ; DO IT ; ; ATTACH COM CHANNEL ; ATACH@:: LD DE,COM1PL CALL LNKPOL## XOR A JP EXITA## ; ; DETACH COM CHANNEL ; DETA@:: LD HL,COM1PL JP UNLINK## ; ; POLL ROUTINE ; COM1PL: DW 0 DW 0 LD E,0 LD B,1 CALL COMDRV## OR A RET Z LD E,1 LD B,1 CALL COMDRV## LD B,A LD HL,COM1BF LD A,(HL) CP 7FH RET Z DI INC A LD (HL),A LD E,A LD D,0 ADD HL,DE LD (HL),B EI RET ; ; REMCH DATA AREA ; COM1BF: DB 0 DS 127 ; END  LD B,1 ; SET CHANNEL 1 LD E,4 ; SET FUNCTION vxGREMDRV.AG  !"#$%&'()*+,-./01234567o89:;<=>?@ABCDEFg=?=C綸xkˬnj۬'˯i|\)cs˹-oSƞck?W?2cit-lխ\[o?~}^_r^)cO_Jǽg=6qCuӳm,K]}2ݣmW_>Os~ݳ"^˦s[2vR il7o,uyY~KvvRWy{ٸ{KncY/=2vT:/mzeϋ}.>/y{}.>/w 6^2v8x=Kmv]^?T>/=cT2ve}^c|Oe[ow_v[-c6?㘱gӧ 3z9O%?^^?TlחC2!θ>|~{}鰻v v`{|g\>lR:=/?֞θ>|~{}YaS ੴ wˀO%2-cؽE^>u֖Yg؞ׇۯ <3m9ڢr=c3v[{|vRW7_tyf/{ƞ{HcYm,K]3!m\<~*yeZEͽ2xlϬ~xj^?צ63> 3u}c{fP ~u)y_>2hq}W`"G_~?g>//>x_>2xlϼøf0K{Ɵp3~oEVvz <_x*=~*6g2ۣXf4'qTn 6^k 3a_>a{;/ϵ Fאָ57})yekc{f}}8s_/v^d5?q~Mm^2~\[ƞ7=s6WJmv?Ʋ ׇo/v]~'_|)e؞Y_g~*6ge؞y{q`2v{>|y|?fJncY3Jmc{_^7_/o\ڼd 6;1Sn1Sn1Snahl:fpjsahlc6;n NmvCcvrf04ۯc6;ݮ NmvCc=389 389 ֎v{?fSC/qfKc=fpjs襱389 Nmv4Ρ1SC/c6;^c6;^c6;^_zi:fpjsq=fpjsxfKc9fpjsюzi3Ki}ĩRZ8fpjsֱ389\J؎.uc6;Kiufp)RZ1Så1Så1Så/ Nmv:~389\J389\Jx?@ABCDEFGHIJKL SMNOPQRSTUVWXYZ[\QV]^_`abcdefghijklmnopqr},) Gustuvwxyz{|}~{E0OIH l]NK62o=w;.o>ޯ|pÿ~ox;>ǿwO_oױ>|yϺ\?߼w:ֱq]D{9i;_bז/vzv{ss./?n^C9?j[no9XoJahO<Nj'9K^WC9X_=a\ Os;?㤗m~9y>mIx>"{n/xڞDm_9/w\\ZbbE\ O_rnCtx9_'_iݚJC^WZ'%^<|?qAx΋ﹽ%p΢?u;|?1|6]~8t3[A'ie5_fv'g>'9I'dv;|0ֱul˟ӫG_} r:V69ω_r\wǿB{7Q^dyOն=>IJ?{~}w_d⇳r/.?bhV/Ua]D"1_ú6kblq]?lE8INT+z\w}:>`88G19Relq}uՑ!9OSi/Uʦq(x'>ѷ͜s|?;qf d=:q|?ܢw<Nj6 Y.8g%]P4+ ,\4_鋱ugw>8Ύ~7Y ɺ\?%-:8mg;qv؞sӉSi/Ux%ilwohʦ]]G\gG,dh,ʡ9xU0V6ECt`Ь,y674V6j=|pwds,qqCKM=>Zw]\yqO~m3GuʦG6޵w=ֱg>8{v8? Ox0~?O}z_~cc뺿\?ug>xX:ֿ ]W~/>'.{[-q c}8c+vs%?ܯgc+㺿\?xd"zC<'|yA{>WrQbŸMhx23>w *-?get!7'wOKl'esn㺿\?rY4 z?xީ&ǻ [<诶ˢ !aΗ .&9Xo&^ ʶ?.׏%xw11b"~9s^AKB_DSh݁w⦕:V6uw~|\e;i;q/ZͶ/nч/:V6ןzsK ?3 Cd?gvN^.9zϹx?#(:/e7xwIC+z9:V6Gu8u+.yzg_ߎu+~޾cswVg}vlEޖql^񈧏zٳgohn3i+/'Vube?x-B_m5X']γicգzǺs~~=ulvͶ/n|=zO~w,їy;xNO' Cn ;a; ? A0^`q.hZ9^:މCVX\]>8V6Ewl}yvl^c~eko*<{˷ces},/cesݣ.{L8ɹtz7ևs>ֱotźGyjX\?xAvC.H;޳w }OI'\.{^גZM[-sΒYohOh'u%?ǟ/zO{>qz[<=O}mnSz0ֱ>|ql^q˷\?ces]\/]3}{Uٳg_+Wyz;6׷=Qbx}ٳ?ynlEޖql{t6'JZA~7ֱw_o^>:V6׫-Ʉw=%} zw Imgމu#-:k:V6Gu8u+.yzg_X\<;6.{LnUxٗoXm8V6ExG_cs}%-8=g:ֱ.G+?/ܯ|XjמLliOz?%p7?V~!=ǻ Z(=]<; qY~8+ zC%p7|zOx]थ ZK=αKN?ǟ{]\2|4[މe[{DNE0ֱ>|ql^q˷\?۱.zŏywl]=ܪó/ߎ?m3ȴbִVt+Wyz;6ױyk]\vCލҿ8u+W\V,,Xe(Ov{s2V6חwxty?Kly:Aw< D9s|c=~_z;]]XjמL y8sW%O ynzO{۲\Dy]oߓ/Qi ss7%? x]Q>xw!djwīϹ`;=7%?`nz&9`L|!/9EC!sOnL^[nCQ0ֱG?uWxL'!A9/1j1dyky]j?*XcExWޯW<X=ǴXz|tu胷Kz#]?{Əql%moKE8ϹXԇ+ ]]}߯Wt։,чnգ/r:g1Xzܯ?_|w|X8]t~ð=bKv.;pcީ`C9Xu_?Oo~:gqO{=O|wjcX:V6?twWX:ֱ>_hO9K?*zϹi|HO2+'.sտ svqO;|M!˲k/sx`+u[yyQֻ(-Ӟp.k:60p;x.Jk(TZ-O'v۬Owaʄww ks@#úHr:V6uw~+D6|A{_|M'?&ް.&^4b׾mr@(ly'?_{ɯ! cqTZ']0<_p|tu~sW%_'>ѷC^כ9_Fۭ>պ{{60l0ֱ>_8&*-Nmy)f%^ċ]l?u'y>d"MD%]LDiZ'9Xo&NmͿu77miNy[Ocp=aPO&>LJwZ>$&u{>5Vڪ]Ucѽ:V6ox^}z$\?B}mW:>s{1~nce7޴y&fy5D ċ]bI~7ֱpV ym87=!~ɺ\?ħ*-~Т?u"r&9^ _#珈.8YA~7ֱ^mm\4= 7_ǿͺ\*C<)Lg *-?oz?}o.9Oo7'?7:ֱ^mm\4= 7_ǿͺ\*C<)Lg *-?oz?}o.9Oo7'?7:ֱ^mm\4= 7_ǿͺ\*C<)Lg#qVIk`n*E9.׏yѼ;q/Z5v8Gqvsj77*ꋆ/:o|>xo'?=a؞s{n Ϳ`w}ο%Oxw:m9Xa߲]TK(Xw}%;b;4o|'3rY4/m^4ymb]/Szxz~[+y䵝v[+fV;kOv.KsZpfCV{.m^4ymb]/S;MguL4=]ժOvgpzhڿj]tU;45g{ݬv6Y~-zXO3_t]2vuN=[ƞqIE~'fr^uWoOvR 'jVV ޞ^V 'j~ ޞ~avڡ_+'~߬Ce0?`o72x{{m-cۼM:MWIKv!c`-3'.<m&3?3vK>M^{kg]ڿegK}^6/}f]ו5/O6]_Ӥ3XegvԴڞ=kdЫX{9e`->ޞ.>[p=f]z~鷻={X bY]z&5mK}^auonֳg`o7={v3VVp^ڼig坹+7k^&`o7K&m|`-~_aoOiRk{AbY cY?V>M^ۼ_2Xeۅ9cjҧk;kK3uw澮ܬyݬ6/}r%X:<ޞӤCV{rz fg.{nV;kK3uw澮ܬyݬ6/}Z,faoOiRn֡_={v9gvf={3V[;}o{Fm흹+7k^&`o7K&mdp ikUOW顝 bY9cjϞ]2^Ų*^`-|X N̲fuX 澮Tcu*?&Wk^=]nC_W9+7k^ bY9^ŲDz~3x{¿U~ǿR/koO|,gƞqezg-|8 {Ym^4y`-3m4g_Ų/25ǒZ|\y3X0Oc}Y3X{u-c/uyn[g:x?x?YѥwHW>Fua HWy HW#:cdPG/A󲎑A2Fu4Fu6Fu{FYԑz#:RV?A)cdPG5Fu12#e12#eԑ2Fu~#:RV#:RVe HY}#:RV#:RVȠշ12ux~CcdPG֡ȠCȠC12#g=Fulԑu12#gЗ12#gOcdPG֡A9[ԑuԑu/cdPG֡OcdPG֡ocdPG֡?gܬ;ufAY:AYȠܬCԑu(AYz#:ru#:rAY:AYz#:rԑuu :ԑui :6Fufi==SGNvU#:rcdPGNv go"< \*4 "4 \Ϳ5 Now processing *8   w# 5 , size ": *8 R 5 H bytes.  ʹ(ʹʹ͸ʜʜdʜʙʙͬ> ͎ : ! ! ; / ͬ*< 0:> <2> }o"< r5 end of file :/ 5 Unchanged - not saved \Ϳ(#5 *** cannot open file *** *8 ~# \! U[: R \ 5 written back, all modules serialized *0 ͓ >/͎ *2 ͓ / 5 *** write error - aborted *** ( ʹʹÜ*< "? :> 2A ʹʹs!  k[0 (  kr[2 {=z=>2/ r_:A W*? {O>2 "? z2A ɯ2 nr..;! GʹE̎ w#6ͬ;Gʹrʹ͸_;_ __:> W*< "< z2> #|5 File not found 5 *** all done *** 5 No file specified Usage: 0A}RS FILENAME[.REL] program prompts for input NOTE: the author cannot assume any liability for copyright violation by the user! ǯ>2}G: ~(x= y>("g!"i͢ C͢ >C.*i*gƀO w#S"g*i#"iHt„# xwʈ?~0ڰ Ұbk)))_zW#Ð{i } w ͪ ͢ >͢ ͢ ͢ ͢ ͢ 2/ !0~#o|g6:, !1~, w# !1:0; ~#ʏ y < f k k o @ @ @ y@ @ yG>GO> ͎ … @ 'ͼ ͼ dͼ  ͼ }0͎ }o|g þ }o|gy y0Î | }    7Î 0Î ! >.͎ !  Ď ! > ͎ > ͎ Ҏ ʎ ʎ ʎ ʎ ʎ >^͎ @͎ *.v /*.  O*.  Hͳ W H W r# x a{_* } $.ɒ ?ORIG??UNIT? reserialized. unserialized.""vRS.MACY  !"#$%&'()*+,-./01234567o89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXcyu7y-U}|Y>4tkcqrʇeJ/O}}neۗ~yqseɵ11K9^mo}1קd[ʼ:m-9//8e;\ʘ/ysە>cٝ+ղzYYvY2]ʶ/y%s似ʶoE1_hrKǩO7w7ӲN;>Oʏcyu7yoL:i<}n~+?LJw}݇ÿL:i<}n~+??+,÷.}/ߗʹr<1q[ͻqefZI{tS~qw3-t@>r˛ˑrّӼҁ*gMuف*wg=L7ny,ܝ0ݼq0慳rwtˍm[oYqssP,뤽zr-s>,m-_?})c.?|or3;X1m;x|dVKȧ7Tq{j:.ٮ[.q\:iy7\˜*~[˗?o1|_m,]pИ<[y>]].O]or7T%\tVW}׺:Pn?YT9?s:*ձ|*9rTӁ*w>ׇ,ǫݙ#Ƌ2vpZmuJͩUΚj`C5_8xv4ott:XI{_|)ݖ%g` g9Pn?,K8cnesh[T9kAͅrtUtv#ϧŶr/aT;vSwyTrwZYT9rpY~>\rX7@uTχtUjNutJ~(ܯ%<~988^t0慚.q\:iu{,u[rL.qϟ#5,]bu; s#i~歕v5ց*gMw>NgjϵZ_C[K쿮+˥mg+KkT98PLpa~k9q=x*};,T;aƼp1/,ϧIGVU'Gz%_mtt:nu9NSɧ޲쎹2Z^;N1[.qNl~8&mczW=f-eY#U'JSm}Yv/<;|ڽNX~#oKʲ]_ogGO8izܯr䓃gGOsN8ձ;,[R_柮rhyّ8ΎT=RF]o^,}eY#U'ˑӲ]_osٍّi8u:Xss-׹#ϧ q,9Xjǜ%綾,m#ϧ֗s.ؗ,}ne]g;89X;8\˶/ّSn{ˑ7?s-[R:xvsvҥsߤ1k9,O]WY#Ul7{XFs,]bJ>u9NSɹm_z,q,m+she9lWsKɑsE>}SK,UsJVl+Nee-WrִΎWy-K8`˪K^rtwZT9^+gM5<[իvJǃ1/tF;;^[Tr{v@hzrH>u9N,]⸎9uA=ps-۾fZIށ*}[Η`[ϧЗ.q\7s/YeZ7ӲNOE;NЗ׷Rs`cm,]bu;i;kK8cnewPܼ,}Vce?7ӲNOE;N8ooQp钭Z_[p=x*eի]E>ݝ@0uc^8VӫW@S/K}\GKV@]nc[vgr;,5tp܎|=@S/K]j:Xq?rt:)h-rt\oJ+\GxLT9kq{ptY8PO7v`vrt7ՃK%U{ώ'z%똛z`Y'7߿/hYr]^a[[iY'{ώ'zn[.q Nlqrԇ;xv$'=rڝ ]Ձ*9u8S˖Tݮ?ǃUrtOzpaz 0ڮmݲj!tj0Zs9n6;PO KrxA+o4vzŕ*,]x9XĘhp:ncnmeF+c.tPyxT2Zy[ڸΝUƁ*wzSTvʿ^oJY:Zӵҧ@]:;8nGj:X9N_-/@uwՇs*k%87ɧ.Qwǹ_/Wuw|qrq׷T^ݒ/^8P%{Kd.ܯ(K;;PetapRΗv.cn[98~:rڝ9,.qNl˖ Ѹ _ptӲ]5܍1/ۑ>3с*w_{k6ɱ{}|oYqr8^~cz[T%.K2,E9_ف*I9_ڹmؽYvgK\Kcy[#A}6?gzg9xv$'UrwtKO.qqrJ;go8KY6ܕ5:7ӧϩlky[ʘ˷WSy<\.2wj!\ulooY%Ol?oY%Swl8K2VPʘV9NK?ܲtKOpd+aUr\qrV|ʧrmWܶqr\}eloSw\E>F;ԩ;P0ڵ,]0U `[Iǫݙwt1/rwZYTSuaxv=,l+rfc~` qr[K172o췫L:i?;xvdm89c-K8cnewPܼtmiY'{q89m?,]⸎9n~~(؏7ӲNO;n뗼uA=ps}X_WoewPr\cە1ʹꁛ_7nK;gWew,}~Y4ah7ӲN;nZrs+OcSocei,W\fZIIk;N./c[7m[ꁛ/Ly[ꁛ/|zu-MYsϳ.|K=pS]k\o;C>r8\Rw?Ƚ0ڵn0Z鵮ە/zNJuݮkRwyR;;;v/?]A?+9uVKȧ7Tq{j:.ٮ[.q\:iy7\˜*~[˗?o1|_m,]pИ<[y>]].O]or7T%\vfRS16.MACQ  !"#$%&'()*+,-./0123456789o:;<=>?@ABCDEFGHIJKLMNOP˳wpogrk};spNHv_y}; Ӟn}0H,a"즽Ų首^5UMan>ݛ{Ocw9WM /ffQga"q{Ni;Ŷ-|:z͒ɬz,aQ s0XOZôd”E r*Nj:+̒ɬ-~0JT(<:+|ݕË[owm)nګo:k̪pUlYa\ylWuV%K: sX0Z%TWaK}.l5r 0J.r(Vs*0e؏6cH}?0WMUS7]\ǓM la"NuH)l5r Sam#Yx֯(5aeV4 % O.2_VfQr9몶0QF嬫i]VfNYpyqFR/$:KǪa ߆ow}q)owa0J՜1LY$cM,6vӡ~ka̪4~F<[]5JfyZ~Fɱyj#(Y1LYwc=F d%LYQc}mdt%Rç5Jz9*cK( 3tqF<[”Ebz[ syZ÷F^Seᢅ~_÷'m;5 (Y嬫0efwY(IێFɱ^κ 0+R/g]VFIYWafQ嬫0myFIz-}tFo~%?ُ4f=_d N5Jz*̡Ɣ׬la;42|>5a%[-|>5J^Syf=_,a,a;㱞Na,)+ st V)zXy~aJ0O%~0m4yzXY0mpF,kߏ-LUSÇOo~޽|׿՛݇njUST􋍻mxCrM>cx_~oC䑛W}d?n]<5yo7.\'yMۻ+2{_/Co-<5ܮZmhOݴWۍE 5b[>uwyj#p5N{]9&/.|--ۙa?/g]Qry,Wu YaPwc=.>Q:lׇ}-y8?P%o .s i%O{gW {Vrӻ~s