><DISK7P COM##DISK7P DOC' LICENSE NOT0~QPUBLIC AQM6"5PUBLIC COMX  PUBLIC DOCa 4dPUBPATCHAQMl5PUBPATCHHXRsPUBPTZ10FORc PUBPTZ10Z80v$RELPUBLCCOMfSD COM  SD DOC-|PUBPATA AQM30 ÞCB0B1C0C1 Copyright (c) 1983 by Frank Gaude' All Rights Reserved##>++:bɷh=~f Ńf>/GyO:/2Ð:!9"1!:222:\:=2%͙͒  PUBlic Files ==>> !\ :] !] X2h2|/2\<‚2 ++ NO FILE FOUND ++ ---> Log-in drive/user: 2͠:29:2!" !#͸! ͤ2:$:ʅ0څ:ҡ0s:%:q0q6ҡ&2Å!]" ͸!"^#6 !#~#: !#*` 4*`*~*G#9JX~*X#L6?#X . `w#`>G:%:ʁ0ҡx2: advances cursor -- B backs up !"=ƀo&S´͙£:\w* 6 #"\<ˆ*"" ?ʉ8!" "** # Nwy#* "*?* ""*?.*+*?H x„ ++ NO MEMORY FOR COPY BUFFER ++ji`"!" *͙ʭ:Aj~ö~@j: >  >1j0j: #~H#>.j~H#~2#" : :ʀ͊ i iBʂC DFJbKʏL_Mʱ P Rʎ SʱTʪUʔV~ X͒*?ʏ"Ï:<2i>22*~*6 i*~*i6*>222>j#*"!":o*E/o:%:*"%*}o|g"u> 2Qk:i*u:G> jJ>(jQk)i22**?A!"Ï* ?›A* " <- *"Øtorage remaining on drive: ͠ ͒:%jelete? (Y/N): ͊Yj<.  ++ NO FILE FOUND ++j*"*?P  ; "?i*?i ++ List Empty ++ ---> _* ename file to: ! ͤ!"~G# !6#! !M : !~w:2 !! <_  ++ FILE ALREADY EXISTS ++  j ~G# O *! < j cancels, turns up one line, other keys page screen. >22> 2>2! < ++ UNABLE TO OPEN FILE ++j2j!~j_:O:a  j#3 " { :<2د2 [more...] ͘  £ >2ʫ -! ">*#" **? *÷ 2/2É2!"! 2 !w#<:  ++ UNABLE TO OPEN SOURCE ++j: Copy to drive/user: ͠!]~ n  { ~w:\G: :G:  ++ Drives or User Areas must be different ++j:\2:9: <$  ---> Copy exists, erase? (Y/N): ͊Y i jy ---> Copying file . 2!"*"* =" ++ SOURCE READ ERROR ++4 *~Y# *"*#"*?¼ '>2:9*"*|ʇ+"*"3 ++ COPY DISK FULL ++24 :ʭ <º ++ COPY CLOSE ERROR ++x: *"!"! <ʹ2=s ++ COPY READ ERROR ++4 !~Y#"!!yg)I>g>!o=r$s%# 3*O! ~W$^":9**?¹ ---> Copy CRC verified : /2  ++ Error on CRC compare ++ :9:%! ~2! ~w### ! ~w#~H##!~#> j7> j> i ! #j!#_> j> j‚a{_ʘ!"Fx#~͏w­6 #¸   [!#7*,:;<=>?* ~#6# 2 :_####~2_ z{|g}oE [ |Q{0j ?c??<2\@2 ##~2#~2##^#V"*#W+}zi`:)=Qk bytes free on drive :  DISK7P.DOC 11/11/84 DISK7P is derived from DISK v 7.7 by Frank Gaude. PUBlic File enhancements added by Plu*Perfect Systems. ; ; copyright (c) 1983 by frank gaude'. all rights reserved. released to the ; public domain for non-commercial use. monetary gain in not permitted under ; any circumstance by individual, partnership, or corporation. ; ; Enhanced to include PUBlic file support by Plu*Perfect Systems. The area at 103h can be patched for to set the maximum drive for your system, as well as your terminal's clear-screen, hiliting, and normal video strings, which occupy 8 bytes each, nul-terminated. ;******** CONFIGURATION PATCH AREA BEGINS AT 103H ******** ; highest disk drive letter in system (at 103h in 'com' file) ; 103h MAXDR DB 'C' ; 'a', 'b', 'c', etc. ; 104h if kay10 clrscr: db 1ah,0,0,0, 0,0,0,0 altvid: db ESC,'B0',ESC,'B1',0,0 ;KayPro 10 rev video, LOW intensity normvid:db ESC,'C0',ESC,'C1',0,0 endif if not kay10 clrstr: db 0,0,0,0, 0,0,0,0 altvid: db 0,0,0,0, 0,0,0,0 normvid:db 0,0,0,0, 0,0,0,0 endif ;**************** END OF CONFIGURATION AREA ****************  LICENSE AGREEMENT November 1, 1984 The PUBlic file BDOS patches and PUBLIC utility program are copyrighted (c) 1984 by Plu*Perfect Systems, all rights reserved. They are released for single user use, with the restriction that they be used solely for non- commercial purposes. No use of this code in commercial software or systems is permitted under any circumstances without advance written permission from Plu*Perfect Systems. Frank J. Gaude' has granted Plu*Perfect Systems a limited license to distribute his program DISK7 on the understanding that it is not to be resold and not to be bundled with hardware. It is to be used only for the private, individual use of the party obtaining the software from Plu*Perfect Systems. vPUBLIC.ASMS  !"#$%&'()*+,-./0123456789:;<=>?@ABCDoEFGHIJKLMNOPQRg/?{Lcs=ֿU.f>yd19{]]QܟRkuΨԮ\eԡh;#ߊ9J}R *աԗ?f]ZvLwu Ւ]uTIՕbxCyZIcڹE:TjdbEi5N #:UCmz#ӎiok1?mU9eeQL1Gn>={o߁Tt>={TCGo?vO^~|~={Tbڡ>={o߇ (W:ٛ:TG9ڌZu rpu.5k;uu%PuTvLfvzVSbSS˨6:TX˨IRCN23^)TQ=;]X-⫍5WbjQvL;UL2ϏL;&L6qȴc6D2Ld2tquiTt-qdޕ2LCt@N3tr82u ra{d _€2va s_bI %@Nda1yVr8a*MАSS %АSWh2r8b&-2Οq24qɈCCNwGWF9rʸ;3M&CCNwwLFdh)S(UАS!L~CCNw2Eq934tg7CCN/L9rxqdz34+!_!vLFRr8`JISƋ;&s2^`r=9e|>.L#u)CZFwSHWS/AN_0u_"q<?,L{#1BNK ! ӎiK%b<\FUC„pP5&j0aZҬĄdC&ӎ&L/LPΡN„pP/L`B!&ӎ &La1F0ZQ̥x>+mujԭb6d0ӳ߽XL*&֩z>|?;GYϿ}RB~$fHr)>3r{E2ssYj3w쟞mC *eP$EW3w$31/3w쟞mCyCMPAӳA=|G2s=|ˏo~>TG97<<ޤ6VdߑƼg1-b #99yEjƈvu}z2T 5d0=+SlUWK}gjk;mg/?{[k}gjFN|?׿kL*Nwk*VX>3혦ecHfc¼}CN 5$5Y߻/{&]L1w$31w a޿ԡ)Yx٘;Ø0߿_Z߻:ٛԡ{&]ZqHfcKiǴc1!摣ƄpPmΦQڡ[0!ȳĄbI .L0 L8 ˄AZnӎ)-7} ~93aZ|>36oLcb X F3_=rwLr/6LeE'SƄ΄_1M6 oLV; d0}L ;'&Xmљ0iLhWLڢ3!caB+ Fӎ)UF Ci/ڙL ;OLb 9х H wL^&qL; [(L2z=,L2!="̖ F'0Ai Fӎ)K%l"V8XpG2a0!^ؘ0 i0!kJvLUmô*96 ɆXSc´*96 ש!-֔옚QډvƄdCPڋv5S3J;1`aB!7+PAr ͙ Ӫ`qaB!]bJ´cjFi| J0aZUE?3!LV4LH6ŚU/vL a*+<1jOcaB&&\=̄b S3C7LeE- idX #iԌΛucBިU` SYf˄AZ)1혒 cô*9&$bMɎ Ӫ0vLid - Z :Z <BĄiUH JgB+ 4,L0vL(r1!5 WQ3Z Z|ńiUHlH5%;&+fv1a*+l0 |dB!ĄiUH~3jkJvL;fv^%6 - - - A#Ag&/ zt&(}g5K* zt&raTVyaB1 IK*1a*+,L^a3a*+llH5%;&Ұ0τV:Zih87#wQlGTv|Ǒ){V;L9G1|Ǒ)Ggm#S}9e $PUBLIC $PRIVATE $ ==> is already $ *** Multiple copies, can't change!$ *** No file!$ *** Can't make file $ (None.)$s 1_!]~ !ˆ _2 2 :\( =2 _ 2 ####~2@2 :mX!ˎ(!\6?2<(b Mm͇! 4\2< !F: ( 5u-8 !N(͈'M!F(2: _: _ ͹{ !~ +:_ !6<(!Ê:_ !~($˾!6<(    ]]~ #:G( #~/ ] #N>/GyO]~2 :!_o$: ʹ}|  ]ͱ>#͡.~( O#: AO  Y 0 o&:  |{0O Addenda to PUBLIC Article in DDJ 11/18/84 Since the publication of the article, a minor bug in the PUBLIC.ASM file has been drawn to our attention. This causes it to refuse to make files larger than 512K PUBlic. The correction is noted in the source code contained on this disk. To use the relocater contained on this disk, simply run the following:- RELPUBLC and you will be prompted to give the address of the start of your BIOS. You can find this address simply by running DDT and inspecting location zero. e.g. DDT d0,F the address formed by location 0002 and 0001 points to the warrm boot jump which is at BIOS+3. The number you should enter to the relocator is location 0002 followed by two zeros. (i.e. if you get the following display from DDT 0000 C3 03 EA .. .. .. .. etc then you would enter EA00 to the relocator.) The relocator will produce a file called PUBPATCH.HEX which is a standard Intel format hex file which can be merged with your copy of CP/M in the manner described in the article. Note that numbers larger than 0FFFFH wrap, so for the above system with the BIOS at 0EA00H the offset would be 3580H. CCPBASE_MEMORY = 0EA00H - 01600H = 0D400H CCPBASE_IMAGE = 00980H 0D400H+03580H = 0980H (after wrapping) vPUBPATCH.ASM]  !#"$&%')(*+-,.0/213546879:;<=?>@ACBEDFoHGIKJLMNOPQRSTUVWXYZ[\64c}?f+?_P0$-X€ч'DYgk3[ߋ:~-tjgk3~ߡmLtk7-fIϋjgk}hWX5 c}1mySve-zb[ySD-&Ⱦ #dIüfI)>[+Yr?[燁 `6r]g `-@d7EOx d hdLb}>[ȟ86X`HZ~??+NY>[0PYH>1y g@Z#0v{•E8mn[37]6Z|B >ۆXڢcri`ƞ}3_m[r14 o&g?sζRgIݿji=}3_K>j2MW>"9g[L=ԧ _yvLWd tiC鑺oconޭ$XFG̢}K鱴ca hdLNa- 9b OͤUN.uqMj3_OO3_Oˏ.=[ÕCk./:&cO\.b;oe-T h"6'A@ frjg=f14 o&g2?Ju ϟJԨ.gP,j &f5=tk _$U}hM_*RPf&k-&ջlf9;4 2K{|&F6&^Jzd hdLNU=f4M3obL$@4ȇXڢcri>v|nMo&'59_JFO\Uy]_{s׬Jr\*R4pMxuB\l?lqFߛQ y=Zʏ0V7KV/'1|-: sF*?j~wv hdLҭ]M6临rTl 'ci9[Yjɢ}Zꕫ"rG/ ?ߧQj>kR@s2Gp'fYeKl[9˃ٗXפ+#w9ÖK qMgwcz ߜY-&ɳe͙bc㵏%ͤv6(P$"v[.v{2fCЇ-Sv]%&g}bVl$Xk^3Dldgsif>ǝ],"g}bVl$+>m^=áyԧ }M>gˌzɻ Ή?l./CP]phhև1J j>^tg}bV}j%/ Q+ɢ{@;kry3䜌=qMbU=3P"9ca5٪7ȳEQT]!U$Uq0猅izZ>$, KɆ\DoEآaј7kƪz}km*s+p=aKH y⚄o&cO\A 8[,X- kgsC\w9r6Z‡|,3N kBjgs{(UzyG7as}GWnĬ|>Q/g3k%bzc3Lmw\XqTytE%3a΄/Ү>F3P7&cD;ob$|L vc}3Igsf8fkPlF^}?ӭ;qr6Z‡v\ Va'cij*0Ӎ>1+ 0z|7? Cv}(# 8<[T `6r]Ӯ},-3lP;[@۷> j/3XGY:»ͫc!g/| jlKrC{g} WHKI ւ3EU&Hbi7i${Clϳ#K^5(vY87ֳm];]Ge\ΚBqe=uZHq.ofg z5Kq.ofg ʕ];Y ~Fe\E- 2Dj];‹ֳ]U_5H,w˛Y׳Gq.ofg ׳?F6Кe\ ׳]_juvY87vJEe\}_^Ͼ}!rǹ5 WֳՁj+vY87fg#6];]Yl3Ge\zJQ*.fv.׳ Z,w˛Yh}=9[٢_p4:w!d Ζ[ƽyqo؞i i[37|fo`-U^ũ-#>#吳>ce_PgU$>V*ⴞwyھwϖ.\2ݹӮ,?=\sg 7}WqZ YޓndijŪ\wWM$;4c@g8>[c"N#X}39v};>c %~cb'.u<['K8FR5ᚈKߜ-(5!Wޟ-VTᚷi3zW_:c.wH䅡3HR7g 7|XK⻸1EX5$˥yuqg.+g 7ŪK.^>[&>޼8y5sWŪRdz{R?yJA"Vb,.+g 7}Wq*X}I̛}3yTO^cKߜ-VjvQN7f2X5>5ճ%'l*jvQXzg~åy4ߕU43 ׄW@4Ⱦ<[z, bG!\2laWֳ]YrIz5(N#24 Y=+>𛳝I@4xß.:Mj&ƫ[I9Mϖ* /ⴞ.u裴klc%/Vωg [-wB]_iYj}H!2/IXq4mH]JBXg;g;\$[sBG7U9Y=kg;d, dP3_kġgW]d{-y#[ÕwiɥI;~= C$&u OJl!\\~vzp F1Z߯gU53G٢ vGi?W}}X'~<}DEs#ʨc69Ǧan W^wN>i#ɥ9oƞ@v(mO|ƈ뚵ʑ8naKĄȷĂlo1rWC3F\U_5H ? ̳\:[3F\׬)_|Oξ[byg׾j,u-/88>Krv.w˛Yg;g;g}5gaQKԱ C{jllLq.ofg\5Ku+ɥ9>;`wR5µ*N1fzR51~F8+s`y. 7>[3F*eJCǭ4Lޭ$X 1rgF>XgU5,=i&NOfv>zsh7ȳnaҼ=;N^?F,Q9xs̳ERd\ΚZXK2]'_huߐgKd ?qKl1 v[DQ9@GfGf|'% LudgyXK2]<[3F.|FhҰA3rH]d_2KlqYW}bU%.^Rb s$;{!#*Gg&2K=[ (_GBgo&vllG~pcΐca_ޠJKrW[DώoɿPgMj׳epdl8ycs> {n5G٢^ʋ=ZAZ0a%74эm2K>>|>>}$P)ofLL0ćXڢc=<#K^qَ#噳Gg;t˓wvΖ*I~<3#K6d gKIq4mS̰22 &҆Xڢcl/8L;5q*}"P\87fZvvvʏd%=LbdIn4>lџ-PB)>_Og%_99[c/&mS̰22 &҆Xڢcl/8L;5q*}"P\87fZvvvʏd%=LbdIn4>lџ-PB)>_Og ;18072D01082100002299074CCD900506CDF50528662A80D90DEB1AFE2C ;1807420104E52807D5CD7F05D1123056CD5E053AD80D00470E00B72874 ;18075701004779FE0D28361AFE083F2005329A07182C007EFEE57928C3 ;18076C010014B720112323CB7E002B2B2809783D28B140329907181298 ;1807810100FE0C1A280596E67F041806C54ECD0707C100209A13230C46 ;190796010010C02100007DA420248EC3AE09CDFE057D48C30103CD540569 ;1507AC01120E0CCD1807CDF50524C8CD4405CD5E05C380EE0DE8 ;120DEE010436E50E00CD6B06CD92C605CD2D07C3B107E1 ;18097101082815473AC50DA02182D20DA62812CD5A0840CDBB04AFC366 ;180986018001032323347EE60F0428180E0FCD1807CD80F50520E43A15 ;19099B0182D30D3C2808CD240942CDF50520D9CD050348C378053AEA0DEA ;0C09B10112E60332450321D40D0077C982 ;040CDA0140CDA90758 ;0000000000+!9"V0!{->H*Ò!-R=|>ͭ!.!//> %1@+!-RQ|>ͭ@+!-̀Rw>ͭ!.!:/>%1*0ͬ#*-/ͬ#@+-!I/> %G3!N!! !l!{-2!U/> %G3!PN!! !l!-2!H*Rw>ͭ!a/>%ͧ@+*V0&R&w>ͭ!|/>+%ͧ@+As!.a#"0@+!|/g}/o"`0!\0."b0!X0."0!H*ÎRw>ͭ!/>#%ͧ@+!{->Ͱ'!0/>G.%!/0x͙$!{-|!.a!0%@+Ú!{-|!.a#|20@+:020:0!0w:0og> ogM%}og)))}20:0og> og}P:0:0og> og}og+}20!0`!{->Ͱ'!0~20!-R|>ͭ!.!/>%1:0ͩ#@+:020!{-|!.a#" 0a#|2 0@+!d020* 0|2l0!h020* 0}2q0!m020: 0!r0." 07: 0* 0" 07R/w>ͭ!/>%ͧ@+!{->Ͱ'* 0|2z0!v020* 0}20!{020!-R|!/* 0ͬ#!/>%1@+!0n&"0!0."/!0l"-/2U02T0:U0og:0og͓%!{-|! /a#|2R0@+!U04!020>2S0:S0og |:U0og:0og͓%|!T04!{->|!/a#|!10:T0ogw@+!U04!10:T0og"0!020:R0!S0F&$!0:T0ogw!S04ä!{-|!/a#|20@+!0Rw>ͭ!/>%ͧ@+!{->Ͱ'2T02U0:U0og:0og͓%!T04!0:T0og~I!-R)|!/!10:T0og~ͩ#@+!U04!10:T0og"0!020!10:T0og#~!10:T0og~og"0!0."0*0|20!020*0}20!020!-R|! /*0}ͩ#*0|ͩ#@+!U044!T04:0/20!020!-R|!(/:0ͩ#@+Î0~# *0~!0w*0~!0w:0!020!0~0~# 3*0^#V!0s#r*0^#V!0s#r*0*0"0!0^#V0~# q>20:0og |*0^#V!0F,$|*0^#V!0F,$|/*0^#V*0^#V!0F,$|*0^#V!0F,$|/*0^#V!04~*0^#V|||%DM|%e%+|+͋%͋%t"-kDBZ!9cZ~#4J> 4Z&9x2-y z2-"0͉ < *0H x2-=%A ¯AүG:-=ښ%x2-"0͉ !-N6#F6!-~# !-q#p >E4!-^#Vz+->_>Wx4{d_zW  !dx04{ _zW1 " ! x04{04*0† x2-y2-"0͉ I :-!- G !9~#4n *0 û2-2-2-<2-!9͗ ʟ +² ͗ ÿ -¿ >2-͗ ͡ ͪ ͗ ÿ . ͗ ͡ ͪ ͗ e Eo ͗ + ͗  - ͗ Gyx͡ Қ%O͗ ͡ V yOOO͗ ͡ V  O>G͗ 2-e >O>GO>G:-~ š%͗ o :-Ґ ͪ Á !-q#pʞ ~#z0 0!-_w!-~ 4_!-sÚ%%2-G!-^#V{_zW{2-_zš%:-š%I ! :-! !-^#Vr+s!-^#Vr+sʚ%:-G:-/ !- >2-u 4!-5; :->!->w w>+g !-~5„ 2->.ͳ G:-x0š :-> !-~ʭ 5!-4!-5-2-x!-^4{  !-~0>0"0*-~20:- h ͚%:020>VU!0 5~/o :-2 >9U2 >*U  " *:0!9q#=) 8>20<2020ͳ 20:0_:08*-~20:09• :0ʅ :020H… :0=O:0:0O:0?> Zʟ * O:0® y20:0 :00 :0O:0* >  :020:0O:0?> :0H~ :0͕/ :0ͥ :0O:0?D :020:0O> ?D :0n :00K :0O> x :0=O:0:0O:0:020x :0O:0?> :0V¼ :0ʪ :020Hª :0=O:0:0¶ <20CD :0O:0͆ :0 :0B :0* > ?D :0O:0C D:->  /:0C& >R/ >B??D :0*0!04!04S+-$G:0Ox*-## _<>SU>+U>-U>CU>DU:/,.B!0N*-# ȾœG:0_:0O x*-# Ⱦ·!i#9w$G:-x+-Sx+-S>+>-> t"0ڻ= <һ<_!9z! 0 +60<&x<6Axښ% K=> 4< oC~0#`WR g04K*0 x=Gt ´:.ʝڮ!-xtڮ+tLt t> 4ú x>+t tx>t=L)x!-):.):-> 4>20!0ö:.P!-P> X> XX20!0ZSuy<>|= | Oڻo####W60#E¤>ew#.®eµx%  GZ+y=x=0 60$w +6.$y=x=uxg9x ;ʚ% ` `w#]ڻ=<һ<_ʻKڻ oW##K0ښ% ڼ0_Қ% ¼š%K0w# x% ¦ GZ+wx%x%š% o>g9##;ʚ% % % ښ%hO!0'>  hSh\ zxt>ͲS ̓Sʰx!-ҘͰÃ:.ʣڰ:-hØ>20!0ö!0')j^u^#V)#F#N#^#r+s#^#V++r+s~5j5^uq#pOj4~ G_us#r#s#r#q!M'UV*.WY Format Overflow*,.-&=.!1"1!1É^#V"1*1"1!1'!O:\.y!9G~#'¸øyO:T.&Y{*.|j& *.*-͓%#͓%> a> aY> a{=>'a!9H=~#'A{>'aa,{=>'a{>ba*-++|21!1Zɯ~>~>21"1"1`i"1!9"1!1Ú2 ~# Ÿ*2~*2~! 2>%G3!!!].2!]." 2!2! 2>%G3!R.!!.2!."$2!"2*2"&2!&2*2}*2}V*2^#V}!2 W?$*2^#V}!2 W?$*2,$|*2,$|*2^#V,$|!2W?$*2^#V,$|!2W?$*2}*2}*2^#V}!2 W?$*2^#V}!2 W?$!(2Q*2^#V!-s#r*2^#V!.s#r*2^#V,$|*.,$|G/!,2͓*2^#V}*.}GR!.2͓:X.v*2^#V}*.}Gv!02͓:[.*2^#V}!22͓^#V"42!*.":2*42">2!62'2B2!@2ö^#V"G2:T.:V.*G2*G25!I26:I2 !J2Z*G2*G25!-6!L2Z:-*G26h2I2:I2K!*."R2!"V2!N2'!-6#6!I26 :\.Y!Y2Z^#V"r2!-"x2*r2"v2!t2!*."~2![2"2!z2'1:T.1*r2~ ڪ*-#"-1*r2~ ¾!-6#61:\.1*r2~ *-#"-!-6#61*r2~ 1*-#"-!-#!-6#6*-*.#͓%|1!*."2!"2!2',L!-6"2!9"2!2Q! 9^2~# V*2^#V|k*2*2 ͎$*2"2*2 nb*2 !2>*%!2>%*2!$!2%*2~#*2^#V)))|*26P#6*2~#)*2^#V))|*26#6)*26<#6*26#6*26#6*26#6*2 6*2^#V}#}22*2^#V}!244*2^#V}>22*2^#V}*2~#*26#6*2"2*2"2*2"2*2"2!2u*2^#V|*2"2!"2!2'^#V^#V͔+:,.#!H'2,.O!=.267 +~#w!-. s#r!,.4L+PQ*.RT I/O Stack Overflow:-ˆ!-"2!2!26Ó:-22!-6:2 ڢ*-#"-:2 ²!-6#6:2"!"!*!^#V#"!^#V"!"!||~yaA =.:;<>[]y *! )$1K o&))))\xH  h#w h#*!#ʗAҗG:ʜ 6áp4+5##*¾6?w­#6 . 5#*6?w#6 '#6;n:!::!2!!Zw#?aN6 #Z!:!w*!##^ ~?~# wxCON CON RDR PUN LST M! ~#$1\l$!~ ! #x=G>ɯ*!-^#V #{#z6#6  r+s!2F#~w!26P q- ͪ+ ͪ+!2^r+s6 #6 !24^N*!|§}=”Gã͟ʟq-O>~ʳʳ>N*!|Y͟=yͪ+q->~=>q2!*!1"!'L{1 *!q-*!#:!Oq-5 #s#r>:'1q- r+s{]!!4*!+>|l+}oͶ~2!~2!"!:!ͨʵG:!*!p¯4#6ù!:!f*!++"!}+l}|2!"!f"!3l&|##"!6*!s#rwD!{ D!*!:!w 6f*!"!:!@!~wP:!P!~wq-<œ:!D!mq-:!}!~w:!ʍ!~wq-ù!*!w#wù!Ͷʹ!́qù!Ͷʹ!Nͺù!*!~" 4#4#4Ͷʹ!~6 l "ʹ!1>{ ù!Ͷʹ!~1>{ ʹ!*!~c >ù!l "ù!*!!,~!12!*!|ʐ *^#V{zڣ z!2!z :! ́q Nͺ#í *!|!,~!=!!!:!! w  >Ͷʹ!|}ʹ!~> ҹ!<ù!Ͷʹ!|>!*!w=ù!*!i,*!^#V6+6++'ù!Ͷʹ!>ҹ!"N#F#~q#p#w>ù!Ͷʹ!>¹!,~!ʨ!=Қ!>!*!" s#r#w=ù!*! q-}!236 4q->213*.3!4#4#4~#N#F#y#x#:13*.3!!:035" "!:23~G~#~O?t"#~t"! p! yq-! qq-O>G!$q#p#6""+3".32-3x203!213!!-3~5ʣ#"E#=p#:03p#*.3q-Gx|g}o# Қ%Қ%G!9!y $ $)0$1š%# #y$) $xDMox&9`iȇ&$),$Wf.L$r~#foL$s#r!>O \$)T$|W}_ s$|}o|gc$yx/Wy/_{zW{_Á$yw# Î$O ʳ$ʿ$#ʽ$ ¦$ ³$ > #ý$F#"33x%$*33!9G_>WObk++$~+$y~#/ʺ%!>)x% Ҁ%=ʉ%)r%ɯo>g{ozg!%'%%%%% Conversion2%!%'%%%%*3|%^#V"3###^#V#N#Fx% #~%'*3|)&^#V#N#F!9yx)&"3'&:,.F&!9!.{z#F&@+)&!O&!9:.O!. {#z!.5Q&#}OD*3~Ү&##~#fou&!&'&&&&& Free Space Exhausted##^#V#{_zWw'{_zWz&4z&{&##^#V# ##s#rs#r#s#r+++~sw#r####}*3}|q'*{zq'+F+N+V+5^{w'{zw'}|w'{Q'Q'i`~sw#r##q#p i`N#F#^#V~w'q4#p+i`##s#r}'-'- FREE Request Out-of-Range$ Free Space Overwrite$GK'Mbk'ͥ)Fͤ)Nͤ)N#Fͤ)^#V".y2.x'i&+"('x(>%(!*.{#z*-*.@+xyx1(͉(_!)^#V(̓(>(ͅ(yͼ(>)ͅ(|f(x(M)|r(x(((->,ͅ(̓(> _ê+ ͪ+ ê+0:څ(Å(͓(Ó(̓(|͡(}á( (d( (((x͓(N #~ͅ((!)(*3!9{_z){) ')%)̓(>#ͅ(*3>=^#V#ͭ(')>)>: H)>?ͅ(!)(!(>=ͅ(^#V|})}t).)),*(#F>A9)> #˜)~ >.>)~ >)=É)^#V# File: Traceback:))))) **'* ERROR FIXED OVERFLOW OVERFLOW UNDERFLOW ZERO DIVIDE END OF FILE UNDEFINED FILE KEYNULCONCONRDRPUNLSTBADG!.~t*Y*- Condition Stack Overflow$x+|*}*!.~4O!53 w#s#r#s#r!9!. s#r!.N!53 +++++*#{*#z*++~*++!.5!~# **!.N!53 ++++++#~#8++{3+#z8+++~+#^#V=!,.~͔+5:,._!-.^#V"*.-9~# f+*.)))))T. )| {+*-|}*."-:,.**.-!w# ¡+*.{ һ+ ¿+!#".q-+Copyright (c) 1980 Digital Research, v1.3 !"3"3"32.2,.*3 0,"3q#p##}o"3*}o|6,F--+w+w+r+s4w#w#s#rq-<23++*3s#r"3*3#"3*3DM!3x~,#~+,+F+Nq#p*3+"3,=±,!-~O~#~G!1x,y, >O6# , q-q-ʶ,q-=ɯ ~#fo++r,!3~#$-*3i,-\-- q-!(-! q-|=-}0=-C-lq- Insufficient Memory$ Invalid I/O List$E.2.".INFILEOUTFILESYSINSYSPRINT  :0000000000address range:-PUBPATCH.HXRPUBPATCH.HEXInvalid relocation address Enter starting BIOS address in hex ____Input file contains invalid record ;:Invalid relocation base 00Input checksum error 0b0`0/0 00l00q0 000z000 00-//0R000000000000/0000*.0000*.00 Invalid Format Item1111111 Stream/Record Sequen/Direct Input/Output Keyed Access P< $con 2$2-1111122>2B2 C2D2E2F2V2 X2Unsuccessful Writex2n2o22p2q22.dat2222222223?| SD v8.0P - 4/3/8!9"1i!!>! + }2  222!~#w\ xʚyʦ22 2<22!\~:<w#>2w!F#~$+~# ?Qs q ! # A6DA3:0!\>w:>22U‰ F0ډ ҉22>20 o:g22: ™͊ :& :!̰ :\=!\ !#_!/~2!\ !]~$  6?#>?2h !\^ ##~2#~2##^#V"#^#V"*#2W+}Cz-)i`:S)=N":j/2!\~26?*#)""*{z[:_ >?!hw#w#w!""" í\ : **% **{ozgü**#{z*Ü:"®!1®52 <8 <®\ Ope\ Writ <):A_!>4 5 2):(s ͻ*"!""!" "**""*+"|*>  ##"*^#V#"* " +X*"*#"|}*|^#~))))!o&:/oɯ2͘͘͘>00ҤÚx0¼:>0:2T]))) *~~i >.i ͭ V#^|>K*+"| 2*|2ͻ́ s :C:@s N:\@ͤs |s *|s *  yy22o&"*>w#•!4ͻ***** "*|!5Ÿ:#*| !~6:2\j:ͭ :!4j:w!1~6T!0~6@*.6#=92 02 !~6v!"5:\@2s 4:!Žͭ :!\4ڎҩ:%q   q : ڶ>1: 0> > :> P G:" *.:0 2 0!S>p#".=20x_:% { L :$L :2"ͻs s ͻ:!‰ ͭ :!\4ډ ҩͻ  :!̰ :&:_ **}ʹ . *>FNpq#= : 1q >2 2 $կ ~#: ,] !] ~ A A <2 #~:^ ?3 2 #~:^  G~#:Q 0  OxG5 x  2 ^ ~:e #~,p !҈  >?u : G: O>͢ ~.œ #͢ { { *´ >?ö #¢ #ú >  ~ ! =_.:;,<>ɾa{ !" 2*+"|Z ͭ * >  Z ##"  *|2!:Ļ)s |5s *|Fs * ^#V#" !4 !:ĻNs :\@ͤ>:i >.i X|>kͻ:\  +6#¿      !1~- ! i  *|)  ++ Not a LIBRARY file ++   :_ 1  > # #2 ^#~ #^#Vz " *#":2!:2Ë * } +"    !1~ʛ  ‹ l ͭ !: > : @ͤ>:#i >.i ##^#V*"!{_j)))))|>k*#":=2  :2ͻÐ ~#+!fJ# = Library Directory forLBR!FNy/w~˿pDriv [more] $ $ Erro >>> NO FILE ON - >>> Drive(PUBlic space used:k files:K FREE) <<< User There are member files in library(sDU:FILE.TYP $ A - All users Un - User n P - Printer F - File C - Clear screen L - Library R - Reset disks V - Version D - all Disks N - No pause S - SYS files ? - Help ACDFLNPRSVACDFLNPRSV SSD DIR .š:n >."¯  \w#àT=:Ms#r#\}w#:M\#\>>2TB!"P#} SuperDirectory Notes 11/18/84 The copy of SD.COM on this disk is configured for a 3 drive system with a 24 line terminal. No video attributes are used. The following locations are available to configure this program for your system. 104H maximum number of drives 105H fence character used in display 106H number of columns 107H number of lines on screen 108H-10BH string to clear the screen, null or hi bit terminated 10CH-113H string to turn on terminal hilite, null or hi bit terminated 114H-11AH string to turn off terminal hilite 0E69H-0E89H initialization subroutine, to determine video type etc. v lPUBPATA.ASMX  ! "#%$&(')+*,-.0/12345768:9<;=>?@ABCDEFGHIKJLMNOPRQoTSUVWBxzA`O&** M^~&K~I]z\]lfGK=pܐaJ<6crCWW"S|z4Z=i?< '{w~ L4T^IO'Hݍ4W]k8w_s񭞟NuW$sͧk=u/'EUUv4m?D&_$M# /z,"S|z|z~: k[w_L2ut7F7q +͏)(+)#a kx~:+7ksHX~tr^*ߧ(֯kY[F$䢹_Gwc~*O/ ._>k5 ~k[^+s|z徺It2k۵mVGrcz_qy!pD'4zRZoXF88*$:ɍ2Wm;q-'Z¸8s4].#iAҐmCr/lbr7KڶypVC9^ Yn@f [v jU #~a{Cp..8YֶyNjܓ Y/b dֶk~@Uulsd {,m{e/,7\\{hz@nJn| 7{6i Ѭ)5S>5S>O5OڣTfhz9>'еc^S6/L^O]qRt[8 In ;%=v_#.n;;TBv6/vL`fhz9m}/Aѧt.aFs%-HI$krcĺv34u2[=kwJxۨqrbʏ2i8jE2k7 ڝFNx8 $׵;iVC"i8 #1b]vv'Iz1b]/qu[Now#8;%~e?|TG㻉p@׶kZFQ>kj^fKڍ2dN omu_}Mvѝ+*Nn7鶈2~]Ly:ExDI;%NB'-u[T+sWn73k7*+NڝOQ;%=w8S>Fƈum~I:i'%cG OvG3z&4궒;I1o{4ӟmm׶8rNp@+&1b5cGvm7pGtcz$qJHQFH vn;sM`74kCu׏ZLj}Ny8m;- >x]`͍Hy}OkPk7Ʈ!nwn#֋InT0nLjԭ M"u|;ɷ~k۵]VP b@'?=䢹rFST~fmmN~4zѝ}AMܟ&kێI?5{ֶkk(cJvqZ+~ +$WH4|v3鱑5uFIFPFLҨ`Hf8O][T+ӵ;2- "ڍ =")kw |N]ۮew[fIzP}RBTHZm׶k[^Mx"GSgm]iP'3D֠Ws$W];_>SIPTfc36 Ƨ8=I#npc ̝I3%vq'1xW_/AѧNѧam eLҨ`c4n)3:ڝ[Cvm\OGd-2O҃tfy]ۮmzpq%I u7 2P@.ɏFh ҵM:8:k]gN)mv[4].h||z[ޒt[~5$׵'udbJKk7ƮS#Ŕf}fS-3qNk&iT0nWky5&!ӯ3/QINIzAP@֠i(]Nq'&Nm׶]t=aK340N/?T+9zvmWfuu5 _!qAh]w[<'So䤵;L&L\Ik7Cӻș^S' St|L*I3鱑Ҽ?~5FIFnT0n$3FnN m^qR:$^/NvGt8^ВD*?Wsڝ޶L?ڍ ӯLz?cP=5?nT0n$3FnN m$34Jޯum~RFTCxNi4 &NKtۄ`NoX׶k۵mOUIۍ4Qo 9@@(:vmv|T4NJk~i˟nJ^}'MQEtص|4m׶k֣۬!)P*̥^Pkrbuѝ@҉_1ɡ2q%*91b0:F{C&_o#5>k[jMR._k_sKbPi_4N\*O 7ۭm]^Q&Z/g IL}mmw3km;i(]ֶk7Cӛn[J^7pkw}m%PʏWSߣC&_ovm\܏Zve&'%I|׶k۵m|Ta@nH\QΨaʏԬmn| search fn jr z,matched ;..so match every entry ; fnxt2: ld a,c ;get byte # cp 13 jr z,nxtbyt ;omit s1 byte ld a,(de) ;get user-fcb char cp '?' jr nz,fnxt3 ld (qflag),a ;flag wildcard jr nxtbyt ; fnxt3: ld a,(hl) ;get directory-fcb char cp 0e5h ;check for blank/deleted file ld a,c ;a=byte # jr z,chkext ;if a deleted file, omit user # check or a jr nz,chkext ;or if not user # byte inc hl ;else check for PUBlic file inc hl bit 7,(hl) ;..at attribute bit 2 dec hl dec hl jr z,chkext ;if not PUBlic, match on user # ; ;the file is PUBlic ; -- but is BDOS looking for an empty directory slot? ; ld a,b ;if counter=1, this is a getempty rSETest dec a jr z,fnxt0 ;..so go to next file ld (pflag),a ;else flag the file PUBlic jr nxtbyt ;.. and omit matching user # ; chkext: cp 12 ;(a=byte #) ld a,(de) jr z,tstext ;extent byte(#12) is special case sub a,(hl) ;compare the chars and 07fh ;..excluding attribute bits jr extdone tstext: push bc ;check for same extent ld c,(hl) call samext pop bc extdone: jr nz,fnxt0 ;if mismatch, get next file ; nxtbyt: inc de ;chars match, bump to next byte inc hl inc c ;byte # ++ djnz fnxt2 ;count-- ; ;here if -- counter > 1 and filename match ; ;Test for PUBlic file and wildcard combination: ; pflag EQU $+1 ;flags initially = 0, but qflag EQU $+2 ;= counter-1 if PUBlic ; = '?' (3fh) if '?' in fcb+1... ld hl,$-$ ld a,l ;if file is PUBlic and h ;..and there's a wildcard ;(3fh & 1...n) ==> NZ jr nz,fnxt0 ; ;here if -- ; a) non-PUBlic filenames match, ; b) find-all-files (searchfirst/searchnext functions ; with drive byte = '?') ; c) delete unambiguous PUBlic filename ; matched: ld a,(filepos) and 03h ld (status),a ;save its directory buffer index ld hl,fndstat ; ; ;The original cp/m 2.2 code removed below is erroneous, and causes ;BDOS Erasefile, Renamefile, Setattribute functions to return A=0 ;on success rather than the directory index (0,1,2, or 3) ;specified in the Interface Guide. ; ; ld a,(hl) ; rla ; ret nc ; xor a ; ld (hl),a ;also save it for use ret ;..by Erase, Rename, Set Attribute functs ; ; nomatch: call stfilpos ld a,255 ;0ffh jp setstat ; ; samext: push af ld a,(extmsk) cpl ld b,a ld a,c and b ld c,a pop af and b sub c and 1fh ret ; ; defs (fnxt0+0B4h) - $,0 ; ; .DEPHASE ; ; end