IMD 1.16: 28/05/2007 16:37:34 -FOG/UTL015         -FOG/UTL015OSPLNK70AQMpOSPLNK70COM OSPLNK70DOC4 LISTT AQM{LISTT COMLISTT DOC'/ COMSWEEP36 DOCi !"#$DIRR COMDIRR DOC%EX12 COM&'OSPATCH DOC(OSPATCH1COM:)*+,DISK DOC-vkOSPLNK70.ASM`   !"$#&%'()+*-,./012345687:9<;=?>A@BDCEoGFIHKJLMNPOQRSTUVWXY[Z]^_\L6$D?Xaw6{ :NnuyIVA:@9=Vz`"*q IUd"lo$8ŝ'OqWԷrZ  Y&l~V)Nݮgr4ۇ>?T/-+OþKsܺƸO"~ty?~sogy~$~c<|ZEz5$n'ݶoA8ᏋRRoK")U<*Vā8$U᫓l.'i'x,8 S:&yqMWc<^o2IUYo̊qyIVAC|rc=~QQ$1EAq:85V<V?+iy:;n/}&!ϊT>د:Kˡ_"Ur^ٳn7nP賞Un]F_b?w,?/r>^UxVy}K4qg</-.O~y~&!ϊT&to<,K4q cBǫ֞OHr"K2h`]S?^u_oIϺrMCkYޖr#:\o/~ɻ{c8T4*'61|G.""}Duyv=e^zS]٣ý}JvP<uEQ\өcT<y^1%qx[/ҫI&qm>g?*'}UVY᥈ ~|ygy~QOU%q~+@W?~WXlOϊfs&{NrPoܠC/pVd+Ox)hpA)]^Cto~VβD{-" з^YWTWhpG_;Tχ?ՕD߃RCq3_]yz_F=ƯOk?󼳼gYb.ၚ8tDYY?U+OLġ_>xKVOkFi!!ϊTV+n_zIUd"lOEz5$!Սse>$8H?+Qi][;y=Xa";CǢ>?or#q薸l~Q|s訷<={>h@"Ge~0w.*e|ߜYO_cQY>"3W=./.|l]  ?@~ޞ8W[>WtkZgQ&>'n@byV|z YtqUbũm3q͢8+NS1ڎw_HvSt]t9Dy˙I鿜AEwH4qagyųwYnāK{'Ggw0|ABEw 5qS6cO;n+gƞwÌ=7(zf)q= kp;˃zOCq=xOwlHþ~&t(+ 5Ӟ`{3ˇ(#*i[q> ?|ȋ>=q~nWzf}D%؞8W":dGyf}D%qj*H/H7;zrScoK^ q Z?+qPoܠ8'N;A`#=C3ў8LApiSJNxW4Ai'TPw7uNCq%{s{'&ʟԑ8@ܥJvsĩP\O(qjCSSCS=/k.wAzeMs7{){ {B!a+__+=FR/--sܺ~.8q%/kq⇾?u7 5q{ϊ z5[:[;HWWPwQX}R.{e;,GoeAG@<˚d!wTc'N;!1ā8T7敧 x_珏W=e[;<+O.ɭVI0yriq<'K9kvϚ'UeMā8~y||ā?N;M$$āxea_?o++m~E7\p{_kĽLGFy=u^x˜{z?$ɭl{,yR. uVHxqj#q en!w utr>/swO])qKwa/.ͺ%;~➿3&rr"q"E7\~Wt qzȎwD_YOEz5$m;NþZ>_0u=-Om)[ z~[ro RٰH4qarǃ=m-;o{qzF=Mt\`q[b!ne⯬,Cv`D/y/85<[r !w 5qSwFy=N-ā*Nos&.觵7r֞m]^xKߟa[4k_.~V4k9WO0a[t 938p'r HA~{处[:2㜸rr i&a_]?c pe~?71 ]71:L]oRu$nctCo)q5Sw_*.N VO{G/#n {`a(t1N_Ni*   HJ4ֽWNJ;e.=YJ% aEMŝ˼zf ?73q>Ɖ5^޸A]4^9)▹g?*-'xmƞݡ-d_1~-"vG/]t{!Uw_S4[,ZDāXDlK϶9ASʶ]t{Jþ9m[yz+ßW]o}|L 0e9=iV?<=u?<?[Z *:.'sgXZ *:.|L  e܀axsZbK__}>y&bkji7s{ų:^ކgz,r@Y]ϬE_85=FOM0ug~ ;\Yl[z+w@,"bKP(t1N_Ni* HJ+ao,n_~Va[L"nctUU\n׋ScOU^(7b0 V^9)▹g?*q{Jw.ň-';ryf 'n#^{[:[~뙟fIo]<@ Kѷ쀾eGy+??Y2YV~Sip~]ԼFþ~85_YOU^.Nq$ٶ&~+ԗݮ3qj{e{ b{E|PwxKgq˜gYMYԑߒyGDX=L5I@m!w?w'>*q\]AB--sbqb.{4|ߘ虱=Q/\Y}N^z_q\{,ZL@,&Ŗms虱]t0cO{WOB pew+N$41 BwPXߚ~ZrPoܠčāXfiߓ^9)▹g?*rr ׉{Wϑ_qAz~]~Kfq-J85Ұ%.j"v^zi5n_/N#q/Z*q-Ja:Tq7K[|ѢT]Pť~Poܠh;e.=؈kO5Lo9IāyҰhXE;@rsOn݇#q%wQɭvt=F#@?7nPG={处[Jo]T@WaaU(]'/4zzu$nt%uKX{处[:[׃[<@ܳm~v@/OBEwH4Aܳm~]t9D=5 pewxk:u|'nct qSǃzu$q<&Po)qXPwxKgq\z HoZ[nQ=V5 Hܰ*q/ZR/ڡxz>7#q%wQ qq[ HmAV\өc^z)޸A-'wQ q϶9LY071 @I=FR/j~r>--I[:[?u71:L]ԑA~^9)?+qp;ߒ85%`C81=85 YtQ3aozzQ?\*qozRBa/~{zǮ x}[]Pzu$nct(t1N_Ni跔ѕ8 ,]p=1V~zg9vAJJ˶-JA>:`T/*Fܘ_YN%]=ѡɟw/ҫI&A0;lT[rmwxT.Io_?_ 蚸gb.kzʚ=~.a7W9/+뽯iNܰ*o,8Շ<7nPU\ā `iEHK1q-[okxS׃zu< ^HK1q`K'W9-Ok^ێwxqjc!WBMCU㫼*.Sũ1*/āG=dY2n׋Scg=[ k~KƯl[ O"z+⇾e㑸aѱaS;L]Ϭ]o,n3k=9G=FKApCYßHܰyxyeYÉ{CvYNvAY4N͕=만SC"-u,?K[|q޸Aor0cO;=+Nݛ!'wu@-sɎ8W&,-蚸-[|1q/Z*q+q WyU\7Vуzu$γrXY}(\Aq:R'nĩ9߶8K{@Ӭ XnSc{eMo9&:e.NqL:qK=!{ĩ)V_Y{e>t2nx9WrOƩ!a_]?5NMz+k9qjqU K϶𜈨\++ىqUK9w0P_v^~ߜƩ!]]A~[d^5q۵-޲CY~V*ooܾ▹p q[rW5~%`C4'ԜI U#]ťޡKL:85*/mzt⾹^.ꉿ}uqjۮ"^{K=d85Y}ʶ9q ;,Sc{Сl7#q=: x剿:w;Շ__kHKݢT;mzu[rWBܣGA_эz\H5<"Ճzu{eae+QOՑK=d85Y}e:E  :q ҰUN*or[yi4q/Z*qK4+q-JC6?7nPǃf%աG+Y׸85|HڪϪxWVNjH\-JC6?iVFW@U??ӋR]ZCp?˥BC㫼α}sPoܠз(I *q8W|H^ޒ%`CexK97+F~=59fS_~sďāxj+i Nd.1g!{$@<5yo;W/]gϷ'܀6G=qAOM⚸2IK:"&S'mKX --s}sce'䞚q|x+3ˇ$-[6t[^7zcg?*BJĶq5@|Hc~KnBJDlٶz?GsRDzce'nctg|w=FW{ϸ71 @c~ɍP"b~E#@P^41 sÉ{Cя~Pooũ!+Y~A9؈kO5LoɍP&mq^~A[:[v[Nnl$S',zj|?/~ܾ8OM~vܽnq"w(v9v =Vqc q/:&nEK_tMJ_*/~r3k8q [ZEZ-RwLþZ> =V=F_tL⋖-蚸ѕ8CW?˙58Kjiki[HK1qj4l[ Oi 71:c_$nEč95W{ ꓸl^w=FW71:L]oRu<> {tp-=??w^;/`'n#WNJ;Xf߹܎?*q%׉| 7 ][rOM&n'՛x$.˭|^M2G% =56ɱ}u\&:\Yݬy^{'nct qJ-oũ!a_]? ĉL ā8Tq_Uq:|*/āK"-u-R$nci &ٶU4@ܰXB⋎[|ђ]70ʛ_U^άāx/niki[HK1qj4l[  nct,!nE-hI⋮]q^*j~+TִbXE--RwL"-uKi&aѓ\eˋoqP\/{J⋮[|  7vdfF\^nRu$Anݷ7q ^jKV/Nq(cǨ?U--KOtT8^>XcT@zqj#q 6cO--Nn+gƞ EKjOtPũ1'H\V[ZV{]/Nq8+ũ1āxq't:{J<KjOt(QOՑxĩqKjOt,OՑx@VK˸:@q:4+q ӎxer"^{>ank <^W>rite <^P>rint <^T>ransmit <^C>ancel <^E>xit <^A>cknowledge <^R>emind Ready !B͕^ͦ_Y9͟7™G7»:}=®2}!ö>2}!͕77:=2!:2!>2!͕7!-jSYn|$qj,-KGz+ũ1ā8,R85Ƒ885'"*谲HG@r~c>i^fyab7b_yJosy;6Ro78 WyU\7Aq:pYgt\Y}ʃzu 2~> 2i!!͕^2 .>^ͦ@ͦ͟77?!k͕ Exit to CP/M - are you sure (Y or N)? Modem connection is unchanged Saving incoming text in memory Ignoring incoming text Printer toggled on Printer toggled off Prin 8"j'gQ틸w^]qzѫ<^n[YzE8y\Sr\t+qT{}Ϋ&jFW@^*j~"+5-ā_"j'[틸w^Q7qj,Ӟ\9u^H'Nz9t3t[QNj}8JG@)iOJjC՛}ter must be serial - use SETUP Enter host acknowledgement prompt: hڿ%¸!~#ʸ ʣe@nA@ͦ £pʐ^Y@ʂM@ ‚> ͦpʱ^ aU!͕!͕!͕!͕File send complete File name error or aborxߘJ\tË=qߘIƇ= ih귥rۨ1ŕg'N:C3T R/jiO6ΐKh^Ҟ8yM^K(Ʃ'N{E}SS^x6ik ΖiSC<[Yɖikʢ^q{HV-RwL"-uKi&aѓ\eˋoqP\/{J⋮[|t File not found File send aborted :}5 N N N N*#"*~w#"~:ʳ>ܦ No room left to save incoming text Writing memory to disk !s͕!2{2|*}3 h:Ca*!!q@~#w#z R1! q@~+w+ x 1@@*"t"b""":] cBRXWU\2c>L>L2~2i2{2|2}22!q@"~!"! ""!͕pʤ^ pڤ2{:|ͦ2|Y@M@+2|:{e@:{A@2{Î OSPLINK ver 7.0 (11/82) <^Y!6# R4!q@"~!"!A͕!͕2}!f͕!z͕ Text memory buffer saved on disk Text buffer empty File name error or abort ~#ͦÕ> ͦ> O:ļ:<=*,"*q,"*N,"=2! ^  +ͦ> ͦ>ͦ:>ͦ> ͦ>ͦ$ͦw XxT>ͦ>#> ͦ!͕^ͦ_@hhh2\!͕!] 6 # ™! ] ~#aڶ{Ҷ . ¨e~#a{  2h2|7?7 Which drive? Filename? \\\\\\@2\!͕!] 6 # ™! ] ~#aڶ{Ҷ . ¨e~#a{  2h2|7?7 Which drive? Filename? \\\\\\@2\!͕!] 6 # ™! ] ~#aڶ{Ҷ . ¨e~#a{  2h2|7?7 Which drive? Filename? \\\\\\@2*:*:*:*   OSPLNK70 version 7.0 dated 11/82 by Jim Woolley, FOG Disk Librarian OSPLINK is a CP/M transient program which allows the user to send/receive ASCII text files to/from a remote computer using a modem. Text data will be display BIOS console and printer I/O functions for improved communication speed and reliability. Text files may be transmitted from either disk drive to the host. The host computer's line acknowledgment prompt during file transmission (normally linefeed on the console and may be optionally printed on the CP/M list device. No error checking protocol (such as MODEM7) is accomodated. OSPLINK is intended primarily for the business user who wants a simple program for communication with a corporaed) may be dynamically defined. Text from the host may be captured in memory buffer (about 38K bytes, or over 20 continuous minutes at 300 baud), then saved on disk. The bell will sound when memory buffer is within 1k bytes of full. Incoming tte computer or with a service bureau such as The Source, CompuServe, or Dow Jones. ASCII text is generally the only transmission of interest in such cases. Files are usually small, and the impact of a lost bit during communication is not disastroext capture will be discontinued before the buffer overflows. All transmission is via 7-bit ASCII code; therefore, 8-bit data such as .COM files or MBASIC compressed .BAS files will not transmit properly. The fundamental test is: If use of theus. Besides, the host computer probably does not support a special protocol like MODEM7. OSPLINK is customized especially for the Osborne 1 portable business computer. One unique feature of this version is buffered printing on the CP/M list  CP/M TYPE command with the file of interest produces garbage on the screen, then the file may not be sent using OSPLINK. WordStar Document mode files may be transmitted; however, the result is similar to a Non-Document mode file. In other worddevice interfaced via the Osborne IEEE-488 or Centronics parallel port. Such printers may include Epson MX, NEC 8023, C. Itoh 8510, or Okidata Microline. Another feature is use of direct Osborne serial/modem port input/output (I/O) routines and s, the result may be simulated using PIP CON:=filename.typ[Z]. OSPLINK was derived from the public domain program PLINK originally written by L.E.Hughes (EDCAM) 7/77, with revisions by Keith Petersen (W8SDZ), Tom Jorgenson, Steve Vinokuruff (Van  c CBBS), Dennis Breckenridge (Burnaby CBBS), Bruce Ratoff (Iselin RCPM), and Ben Reagan (Lynnwood, WA). OSPLINK version 6.4 was submitted to the First Osborne Group (FOG) Disk Library by Byron McKay (OxGate, PicoNet, and FOG). That version useding control codes (commands) may be initiated from the keyboard during a session: Control-E Exit OSPLINK to CP/M "warm-boot". Control-T Transmit ASCII file to remote system. Asks for drive (A or B) and  direct Osborne serial/modem port I/O. The author was not identified. Significant additions and corrections were made by Jim Woolley, FOG Disk Librarian, to create version 7.0. In particular: 1. Added buffered printer output to the CP/M lfilename.typ. Control-C Aborts transmission of file to remote system. If used when asked for drive, aborts ^T or ^W. Control-Y Switches between saving and ignoring incoming ASCII data in Rist device configured on the Osborne parallel port. 2. Corrected text file transmit routine. 3. Added ability to change host acknowledge (trigger) character during session. 4. Added help reminder of control commands. 5AM buffer, for later transfer to disk. Control-W Writes RAM buffer to disk. Asks for drive and filename.typ. + + + + + Revisions by Jim Woolley, 11/82 Control-P Toggles list device (printer) on/off. Cleaned up read-console-string routine. 6. Cleaned up modem routines. Added runtime logic to move code above 4000h (shadow memory), thereby keeping size of .COM file to minimum. 7. Improved user interface. 8. Eliminated non-. A 256 character buffer is used to accomodate printer busy conditions. Printer interface must be on Osborne parallel (IEEE-488 or Centronics) port, which is assumed muchOsborne related code. An OSPLINK session is initiated by placing OSPLINK.COM in drive A. At the A> prompt, type OSPLINK followed by . Modem connection with the host computer may be made before or after starting OSPLINK. The follow faster than the modem. Control-A Permits reset of host computer's acknowledgment character. Default is linefeed. May be changed to, for example, > or * or ? or @ or # or &,    etc. Acknowledge prompt is only used during ^T file trasnmission. Control-R Displays reminder of commands. Following apply when prompted for filename (similar to keyboard entry at CP/M level): Control-H Bac Only the first character is scanned. Examples are > or * or ?. Control-A permits trigger character to be reset during a session. kspace when in command mode or <-- arrow (e.g. ^T or ^W). Control-U Aborts current line when in or Control-X command mode. + + + + + Note: all other control codes are passed to modem output and may be interpreted by the remote system as various control functions. A "trigger" character is a response (acknowledgment) sent by the host following receipt of a line (carraige return character) indicating that it is ready for the next line. The "trigger" charcater is set to "lf" (linefeed) by default. An optional trigger character may be passed via the command line; for example, OSPLINK B will set trigger to "bell" The following options are allowed on the command line: 1. B = bell 07h 2. X = xon  11h 3. U = upload; no trigger check at all (this option may only be entered via command line) Any other ascii character on the command line will be converted to upper case and taken literally as the trigger.    2o#9bOԕު<9ꊧB$VWuQ{#G8PIU*<+_!"O{e UzOYսB8SdWV1oMݳr婪RT9Py(uejxʪ+J^y^* TA3E*Rx*<Q魜*ujbR{(T YyS7$9r)J)R9x`-bOuTx+ *Vs*TW #TW\U9S]T(߷J_OU*WVsޢ&(W)jy#Ǚ"+E Q2ꊧB$;rvLISTT.ASMi  o! "#$%&')(*,+-./1032547689:;<=>?@ABDCFEGH!zeyjF^M$J{^᪼׽juu%1d zJH Ǚ"B别+bʩʪ׽juu%1dRXqHE#VVP9uBJ-jU+'DTC<WAG7o`[ S}ސ*u5[SUr&TQ2{ϩzK.ޑ"Uv*G\XJUy[YY=DI~ޞq-5dT]UNY JYOY SW*V*VT^Ureɑ[z(y5{WR25Ze*婮Sʕ\+ϓ9κUNM Q{#VXQ:r7J*&<+JT*(㌨ZU+&X9"^=+兪;rD3`;a<&A*筪{UB*TRJQo8#*SQE<ɿoSrԩ!Ju)"9ΈJuYYbbzޞ#USr]^)!ݿ#GdKdKdKdKdKdKdKdKdKdKdKdKdKdKdKdKdKd9"πlz  Y79"@J99"G8|8]I}OA GZ: x0j:~ؑ綳ÿ!s@ x3\X,mM:>!wS9OptmWrDŬ3+ =!9W?Qpt Bi+YWV&~m Q{6BBݕ%J*TUH~!I[USC*TUH~!"%L_=˂/h/YYj/nj#rD;rt;_usYݹmtrgL0ol:awpo>;\ r_v:?rnw @d!%f^ON8Ke[[1-Ddqn;g (mgO@/uF9"G4@"G4Fu[@g p'MCNҬ%rN#ͺ-Y«~!}Hn x_ȩi x_~կUW_~!ϼ,UW_~կUWBy-Y«~կUW_ 9ZRVL'9"YYj.]Z;_,,*d#Dž_,Kp~[nϿA{#i@ktO#πYYE D'=YtEN#r/NfwC"m=94 9"|iˁ2+>I}Oy|Y=+oTFO]}~C3đ&C$YmOxE‡Ǵ4+un 3=]Rv>tϥ? &*3&Lz.e:ٖY=3?ҿ9P8^-47qFKYL#GP+tmWrDo]M_68,|t7O_3b2]_sQ?C$YByqE Of*xmiv?\w<Id2%~Q:4,_ π83bN<9Pfe1oQ};iۜdg fQ8tAzZC#G+ʶͮo&vCi_p&z oM6|q^HYשgoY π_g%\wuͺÿMmb"#G䓏#Gr~5O9sRߓeXK!Gd@Eg%aNt{w3g ́܌cN) Gdm|ٛmo3?ҿ9t8St;r|9"G?-=&ޑ#s Ggn3/鴀<IdvOiZTT6 $"g@?yVt_ @,9(<ɳ\x2 O]}~C$Ys ygV7J8 3Yyk2L]}~CYI0SuuRvCӷmyf 5٠7&r:X*;@BYg^pۮ>A@6+O>܌|u:}!V#rDɌ9N_;?Rwovvp'Md9"dFdgQ,jq@WY RxH5{REB πYIk|<_~3Yw2aϥ? d'~(&um"GP?nwNunlgzّ;9C:[6&/lm3?ҿ9xqY3߭D9plwAunlgzّ;9CWY6?-f E\*;ʋ<IlV7ǜ.S/AgwV:άne'ȡʋ<YsgLeGT)ݿmp'MSy(;MӉ#rD鎻EN~GgV.>rDсgG_VJW_<g@,gճ/rDqiV..zG'đ/mp'Md9"π]}ɐ#rLfDFqa{|q~4#-v➻#89&3"#Gp<+:,d4?-i vRW πt83<+ϧH zV7fobNWN < y<+oR׹ M|ZgCr ϊ,wg fsPČإoJ Gp)aM#GdisŝN3&8;3ßpg 6+/ sg π~d:  $=+]71K^CN\#π_g]<:A[> YYԩi3WY.Y71_4?}z׹M>rDJ"π8wVyE56ssRߓeX*T4P!π]}ɐg@yD-?!π_gގ<geQ͈> R @mV^H"%d 71 _pG9&3"#G+*va9kҹ='m'zϥ;rDɌ9"ܖCÙ9?t{|q~<I3+C׌cClu.9[#r%\J綳{.#sP4}.,ۙqpvo~ yunuEE~vCtz_miZg2s<OG#3Q7hVw׹ G]TI7׹-pus?_o3sϬ-wđϮX?!πm9?"  Qb&/|K93s8-M,xM ŞA}۞K9(Y{.:> >g?<{n?.|Kx3+?;o{|uŠNʊ_HYf3d99л :߭D9عt7ͯγքfs_{2ݹ0 m|ٛXd񸛸=-<RK46+uxgДY#Gp<+ !լ2_",mϥBLJC:J]S!Gd]!*Kيרwrh1.t|7<f<IlV xq銜py-rDBSfe1uu§y M= J<IlV P!GHYyaNrDBJx5/lk3gV3gV3A9"G8]#'_Nbi:~@Ty٬oD8tAFDBy&? $Ϭo]3;rP*㻕9"Y<&Nptu7C%HLey<+oMP3݉|%m "πmЖϧEo{ZyG@gyV{3QPّ{Z'zyun|> $Ϭon"§wnj#rDɌF-wĹi9%u8YtD3QOwx: x:`p<+Rͺ(b28=A@CȺB.ҖeV31͡ZKqVd:e<ɳ0 $Y+BBSfegQ,߂Tnct|)ΊLT=  y<+uMu8T3QK@i9b2]oyJy٬␛q4"Yh599|1qn;3,qFh'b2 mM#G vH_gŹ#g@_6ymoggγRZf yun )g@?yV4!9W?zّ;9C@6+/,ۙq|yK#e;]9J}M ត<:"Pi9  /,ۡ"Q銜py-rDBSfe1uu§y M= J<IlV q# sg8뜄Iܑy%ʾe&N <gb.<: "Pi9׹ Grȁ^o3s[g&PpӵrDx!mge_]3s8-0 \:Grsߐ#i{3+k|Zr/3s8-ygV~J>nbC/$9Z w_]!t}v?rwf#2+C|Y=+o TF=Re s9|ʋ<IlVºB<]7SYNwr'_7-]3WYyk3wO#@JXW rDuxH+tkN?u/gДYϼ;iۜdgγքgճүLelؾ8}Z##YY #Y#@9Z"ُq[EKߗ-t #r=9"YTt6׻bKF׻bKi3Yyk<ʏ<g@,g I,*ގgQ [NCET{y\-gճyDy|Y=+o] πY#@RгȢr|<wŖfqW92u3sM GdXW4:[bMl_vvrDuxsM|ny?"G+vڿE⎜8r89K9" fϼFqN>-ޑg~+g~gQߣTn-L籓Ɂs7䈬+Er~59;_t|)ΊL<g@?yVF@@oѐgŬ,g{y<+uMY7Q¿EѾ3s\H<geQ!π_g^nb;?| R πlwV^H dȢ rDGɳISp+4<-fe<wŖfӐg feEr|79"YTx!mwŖfӐg@9"YT#mgeQ3WYk*E̺-@}B p<+<wŖf  Ӑ#rEIE4 [ݿEC@YGP| [w?@>d4<v3 ۝= yVtb2]GF6SXzn(Fp#M"Gpťlkt; [Nwg{d7TO9;3eV3 zWliv9 y?"G),ou&aݥ}[yV37/-6+/ zVEYIîo#'mgSΊL $Y|q<gγү /ŒLK J=es_9Z"@R [׌#-Wȝ/|ʙ 9"nH[gF41!"Gpܠ=/%ϥW G pHY׾iagwb.<:i9rg@_6ygV~J>nbŽӤ[(yV3\_;__,~k4 $ϬɆk%ʢkabKw{|5 ygVdCȿ5٠9JE֠34BV,~k4 $ϬɆM-rDSYGȟiVRڝw5^B~k}J9"J>]-fk5ߠ-ĉsۙLgQk_T71=<:gQ߂ &N F$Ϭx[!_Pnj#rD+xM ŞKKI<+oMaQ zVEWYÌ#ϞgZgyVvͼF-q_*OK㻩E9gw&oGM_"'4t; ܐgi?SiLݐ|gM-rDq9?-|Ot{|q~s(~8=oTFqNޑgQk6:׹Mg&B[>@#Yyg@;+t~ql_i:~pgϬ|t2/lm3A9"G8i yDk/kRs?=Kexy,t39]?AgQ ÿM<I3+igobnn(N4,_ Gnj#rDB,;b;_,~Wȁ\/t|7Q,\X,mM:>}/rD~ZIR_ٛ9kҹ=;,ኊĥٹ6#w;ÙrDoKw 䈜9~g~gγRZg@_6ynȳRLnHs[>3gV3gV3<+̼F-i%yf PĜ.zត<nj#rD&ʶ{.#rЇ&mvgEqt:Y7}Nw>LN83 ΝZ:?8/t?LN83;+Ź8^-Ntw3 ۝Gɳ}AwtxyunZ#πm9<3Hۊ !π~$tf*沟dWJ @%;œdgmV3Q?ؑ% $y4,AW3&tAA-$ygVPpfog9Ĺ9LHQ߂T3WYk*8#rE|Y=+oTFGYIa2f|v'w3D6K>ܨf?%tAO"0Ġg ) rD>ܨH_g /Œie<\V @Y#@YY @۬3f8}h wS#rr8Xni9Гt7iIe<Yyg82tdI׹ T7q7q7{Zgyr~5O9sRߓe@$@ó7;_3>r|79"A[>W'NˁޑLi֤zVG3Ȑg@_6hGٛXdɳR7H"%<]T3<+a<IlV>]]3s+ă<I3+rD~ZHe<9Pfe<9Y #π/gaO^<용oϿw= M @%<]/׹ B}`]!ٛXyv);> $Ϭ|Z^qF$4Gɳ}A{:‡g@_6qZ5 㻩E9Iy\ȝ8\" @= $ϬZB.|ʙo{G9"G丧pv'NˁLۮ> ,N C/gHwʋ<lƱ/#M"πmЖfor8m3eV3?Rg&r r&G9"G[b߶saT5ܞϹ mDYs~a&sߐgQk| &N 4<{\#E=IHwVsۙqoO/Nu;ʋ<Id pfs Ogd 󬼵n3sٛ(~(#ru6WYt83CyĹpg@?yVO93l9!π_g]<:A[>ygV6\׌#-W O:dBtv΅ŌX*οmy%ʾg&9\7;riY3WYykBr m|/3;+ϹpqYosv.,gճ/rD>¢4:[F@}۠-y f%<IlVsaхgγք׹ T3(yVN> yunFJ"π8wVj0ؾgu0-;<nj7-?#AЖϧ"M?yV<(޻CF6S%~Q/A<ɳ  R7H"%@[>M,<Ӳ 'J"@,^fob!䙖pg~{t2[w?:y\qg39NaZvAڬ3 ΝZ:? #YLel_NW}]##2󽐦s5rDqЖϟo{ߑ{Z7 m.un|<nj#rD|9O]}~ۑ Gdhk|Y=+}g*8O|yGWY)mgƱ[$Y<&.g@;+/ zVTőyrD|&~g~+g~g~{y|Y=+}gγRZ93"EhȝO3-#πmp! <򙕏"#Y ##YY #Y#@9Z-+tmWv䞖 9"C[>!M?yV<(޻CF6S%~Q/A<3DAN  Page  1  1  == No file 0'}y\qg8o#'mgt<Yyg8~J>GO<:3gV3gV3A9"G(,L!\]?Gp'Mg cgVV=RuQ-Lݰ_ÞKg@6zV4E\]A 1Kx!GdVY 9Zgby that name on this disk == $== No file requested == $== No "*" or "?" please == $ LISTT Pgm v1.0 10/10/82 Do you want tear tabs to use roll paper? (Y/N): Number of spaces to augment left margin? (0-9): Ignore FF (Y/N): Heading/date is: StbVsA&:$ m|/3;+ϹpqYosv.,gճ/rD>¢4:[F@}۠-y f%<IlVsaхgγք׹ V3A9"G(,L!\]?Gp'Mg cgVV=RuQ-Lݰ_ÞKg@6zV4E\]A 1Kx!GdVY 9Zgart at page : Quit at page : HIGHEST PAGE IS: "1!V}!~ʆ!~:f!#?#~y yi!\ #~?ʒ ~:g2o|g"!\ j222*" "<ʌR͜ ͺ   ! [kz> z::<268> :<268> ͢zR͑Ͳ͢!3s> ͺ:[>^ͺ@ͺ z!͇!}Øx¤> î+> w>!#~ ¸++ Ë!#~ + + 2 !7s͑  ͢!?s* *}|g!"* {zY* S*"%*" !"* * }>*#" Ø~~9~!:͇2ʑɯ22: â!~ >0 ͺ:G:!s1!}ͯ1C:C0!:G> w#=!7}!}ͯ_Y\2!7}!}!Mͯ ʒ€͚mw#x}mͬͤm!7}!}!ͯ ¶͚ãw#xڣͬͤã!7}!}!ͯ ͚w#xͬͤ!7he program: A>LISTT HELLO.ASM A menu then appears asking several questions: Do you want tear tabs to use roll paper? (Y/N): (1) Number of spaces to augment left margin? (0/9): (2) }: > :<26%> ͑!͇Ø!t}ͯ_YK2!?"L!7}͜ R R R~# j~ͺ#s~#}~#Ç!s>-:G> ¡>-ͺ!s2  :<2_: {__:  Ignore FF (Y/N): (3) Heading/date is: (4) Start at page : (5) Quit at page : (6)  1) A "Y" gives tear tabs for roll paper. Any other reply (including RET) defaults to fanfold with no tear tabs. 2) Ability to include 0-9 spaces at the left margin for those printers without adjustable margins. A RET de- LISTT -- File utility program for printers -- 10/10/82 Irvin M. Hoff Los Altos Hills, CA 94022 "LISTT" is a printer utility program that lists any requested file on your printer. (The CR faults to no spaces (normal left margin). 3) Responds to form feeds unless a 'Y' is typed. Outputs an appropriate number of line feeds enabling printers without form feed to paginate correctly. 4) Heading desired (s  uch as current date, etc.) Up to 124 characters may be used. The name of the file plus cur- rent page number near the right margin are both automatic. A RET defaults to file name and page number. 5) Asks for starting p c) Can abort at any time with CTL-C, but finishes the cur- rent line first. d) Can change the location of the Page number for use with printers of 72 columns, 80 columns, 132 columns, etc. (Byte at location 0103, via Dage (defaults to page 1). 6) Asks for page to stop at (defaults to end of file). NOTE: There are two options which may be user-set. These are locations 0103 and 0104. They may be set with "DDT", "SID" or by edDT.) e) Can change the spacing between the tear tabs for use with printers of 72 columns, 80 columns, 132 columns, etc. (Byte at location 0104, via DDT.) f) Can indent up to 9 spaces to effectively provide an ad- justiting and reassembling: 1) PAGCOL -- sets the column the Page number starts at. Some printers have 72 columns total, some 80, some 132, etc. able left margin (many printers do not permit changing the margin). g) Can start on any page desired, saving paper (and time!) if you only wish to reproduce certain portions of a file. h) Can stop at any page desired, allowin(Byte 0103) 2) TTABN -- Sets the space between tear tabs for roll paper. Some printers have 72 columns, some 80 columns, etc. (Byte 0104) Thus yog the operator to do other things when only part of the file is needed. i) Shows the total number of pages in the file if you intion- ally (or otherwise) ask for a page number that is too high for the file. j) If a hu can compensate for various printers and also print any portion of the file you wish. FEATURES: a) Shows on the CRT what is being printed. b) Optional fanfold or roll paper. Adds tear tabs if roll paper is selected. eading/date is longer than normal spacing for the page number, it is automatically moved further along. Up to 124 characters may be used for the heading/date. k) An option on the menu allows you to ignore form feed chars. I  t automatically paginates without form feeds in the text. l) Works equally well on printers without form feed since it inserts the correct number of line feeds to paginate. m) Visually prints control characters imbedded in the text  other than CR, LF, form feed or tab. You can thus dis- cover any unknown characters that normally do not print. COMMENT: Line numbers can be added to any ASCII file with PIP.COM and the [N] option:  A>PIP HELLO1.ASM=HELLO.ASM[N] Form feeds can be removed with PIP.COM and the [F] option. You can edit CTL-L (form feed char.) into the file to force a new page wherever desired. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  CTL-L (form feed char.) into the file to force a new page wherever desired. * * * * * * * * * * * DISK.DOC -FOG/UTL.015 First Osborne Group (FOG) Utility Disk This disk contains OSPATCH1 from Mechanized Knowledge of Toronto, Ontario, Canada. They have given FOG written permission to distribute the program on a non-commercial basis. Its function is to patch the Osborne 1 COPY.COM utility for more reliable disk formatting and copying. Place COPY.COM in drive A and OSPATCH1.COM in drive B. At the A> prompt, type B:OSPATCH1 T  he program is self-prompting. Also, see OSPATCH.DOC. The OSPATCH files were submitted by Jim Crowell of FOG. The remaining files on this disk were submitted by Byron McKay of FOG. Originally version 6.5 of OSPLINK was submitted. This was aa file on the CP/M list device with a versatile selection of options. It zeroes out the parity bit (like PIP option Z), so WordStar Document mode files will be legible. Place LISTT.COM in drive A. At the A> prompt, type LISTT d:filename.ty version of PLINK similar to PLNK0124 found on -FOG/UTL.013, except it used modem input/output routines specific for the Osborne 1. This looked promising as a smart terminal emulator which would be simple to use for ASCII text communication. Th Hit Space: KK : k Used: /k Not used: k *% DMf : remain on 1 !erefore, I decided to smooth out some rough spots, clean up the user interface, and improve documentation. I added the ability to simultaneously print on the CP/M list device (for example, an Epson printer) interfaced thru the Osborne 1 parallel9" ! J> # ->! . *ͪe> # < * v K  K  K !B r+s+p+qA ?  p*A *? :]$Ž l]Q !]6 !E 6!C 6 :C *C &l ~2D U¼:E 2 :D S:E 2:D F:E 2:D V:E 2:D P:E 2 :D N2E ! (IEEE-488 or Centronics) port; this is a feature which is not available (to my knowledge) on any of the other modem/terminal routines presently in the FOG library. Since the changes were extensive, I named this version 7.0. To use, first estabC 4Ø:!4:!5(  ! I3= : [= t:\a:\=_: :] t ?]\ : ҃! 6?Î : 2   ]Q  ?\\ : DM, Q ! "= *3 ##)*= "; */ &# "! *3 #"#  !! "% >!1 . 2' \lish communication with your modem. If necessary, use OSFIG from -FOG/UTL.001 to setup the modem/serial interface. Place OSPLNK70.COM in drive A. At the A> prompt, type OSPLNK70 See OSPLNK70.DOC for further information. LISTT will print : 2 : ʩ: ƀo&"* ~ʛ*# +"# ** DMY қ** DM  *; q#p* " . ** #DM*; -e**  *; w* #" )*= *; s#r*; "; : 2 !S 6!"V * "n >!S d*S &T ) ^#V"K O!l ^#V"M :S =2S M K  a*K "G *  M "I *K  )*= ^#V"O I G  *G )*= N#F*O ? J*G #"G (*I )*= ^#V*O DM? m*I +"I JI G  *G )*= ^#V"Q *I )*= *G )*= N#Fq#p*I )*= *Q s#r*G #"G *I +"I K I  G M   !M G  :S <2S O!T *G Ͱ= . g S -A >>!  ~?l W >#^ : /!:' —  ʑ #‹  W ʢ #™ i`N#FogDM!>))덑o|g =¼ DM!>)) = ^#V) ^#V|g}o s#r*S &l ) *M s#r*I "M ^I K  X:S <2S O!T *K s#r*S &l ) *I s#r*G "K û!" "    #* #" )*= * #" )*= N#Fq#p   * )*= * ) *= ^#VN#F? H * #" )*= ^#V";  *; ^#V" * )*=  _{ozgO{ozgi`N#Fogo&og_{_z#W OK = Y -S {-_ ! s+p+q*  ͼ 2 <2 : ! ڗ  K ! 4Á ! 6: =! ڻ * & NK ! 4œ >3  03} Z; { ) # ^#V"; *;  ͪ  *; q#pÝn* " ! p+q* )*= ^#V"; ! 6> ! i* &*; >OK : <2 E:/ *; ^#V*% DMf kK : *; Nf E*; ~ڻWK þE *; ~SK E = ! 6:! ':/ : = !: = : <2 * " !" >! .  * *&͵ "( * *&͵ > j*( #"( *DM*( V"( !" (   K!" }2 : <2 O:* * * "    >! = * DM** +" *( * " Ø* #" *&JߩaOfoF+x˿h/iĴ[c޿KJv*t/iDI %ݩaw9 fxIuKx‹_|;qf*( * " 3*1 #" " " *5 " > # R : B * +" ! +s#r( ! 6: " * ~2 * #" * +" > ʶ : 2 Ғ * +" : <2 O>ҳ ! 6* #" * ~2 p ̓: AOK = * Ͱ= * ͷ= * Ͱ= *# ͷ= * [PSA[zqi=vZiN cF;\5Ik exBܹ͗+E %;zWczϱsx>³Wj܂ FrPBIJXlh'[1*ӫWܿ9 JJ(vj؀OYEJJ(iN %铣իpn*PBIDI4S"7[(­ӈr  Ue׽JS"7?^&p4b- %}vT(W]WnR9}_bw4Q Ϯ[zk1dBO/=V_Uvݴ?=G42­Wv)٩pi_z,_Uv]I %;nFcMEJ(XJJ3J{\9 op>/]8rcNp~j(a= FOO.COM in alphabetical order. In the latest version, both file name and file type are recognized. SWEEP B:FOO.C********************************************************************** SWEEP is a utility program for maintaining file directories, and transferring files between drives and user areas under CP/M2.2. The latest version will not run under CP/M1.4. InOM 8 will log in user area 8. Selecting user area * will cause all user areas to be "swept" at once. NEW: If the starting file contains wild card symbols (* or ?), then it will be treated as a directory wild card specification. Only those filesvoking SWEEP and moving about the directory. ---------------------------------------------- When SWEEP is invoked, you will see a menu of 'commands' and the first entry in the directory. You will also be given the total space (in k) occupied by the fi in the selected user area will be handled. At any time, you can recover the menu of functions by typing a question mark (?). Simply typing 'x' exits the program. Note that all characters can be entered in upper or lower case. Functions thatles and the remaining space on the disk. SWEEP also reports the current user area in the prompt, or an asterisk if you have selected all user areas. Typing 'space' or 'return' moves you forward in the directory, typing B (or b) moves you backward.  act on one file. _______________________________ C This allows you to copy the file to the drive and user area of your choice. You will be prompted for the drive and user area. Just enter 'b3', say, to transfer the file to drive B: user  The directory is circular, so typing space at the end of the directory moves you to the beginning. (A line is skipped.) When you first invoke SWEEP, you can specify a drive and a starting place in the directory. The user area can be specified as a sarea 3. If you omit the user area, the current user area of the file is used. Any file of the same name in the target area is first erased, an exception being when you are transferring to the current drive and user area. In the latter   case, the transferred file is copied with its named changed by putting a $ in the last letter of the file type. If an existing file in the target area that must be erased is marked read-only (R/O), then the copy is simply not made. You wit it erased. If the file is read-only (R/O), then you will be given a second chance to back out. R The current file is renamed to the name you specify. Lower case will be converted to upper case, but other 'illegal' characters are ll be told. You may use the delete function to delete the file, and then retry the copy. As an option, sweep will perform a CRC verification of the copy. When you are prompted for the drive and user, add a 'v' or 'V' to request  not trapped. It is quite possible to give names to files that CP/M won't recognize. (You can also change them back again later, however, so no harm is done.) Responding with "*" to the prompt will put you in the batch wildcard renaminverification. Thus specifying: b3 v will copy the file to drive b:, user area 3, with verification. See below for a description of the verification method. BUG: CP/M does not allow two files of the same name to be open on the sameg mode. See below. If the file is read-only, you will be asked if you still want it renamed. It will no longer be read-only after renaming. V The current file is displayed at the terminal. ^S will stop the display until any other  drive, even in different user areas. Thus, when transferring between user areas on the same drive, the target file is first named with the $ convention and then renamed. This can result in an extra file being erased. If there is tokey is typed. Otherwise, any keypress will abort. T Tag a file for later transfer. (See below.) After being tagged, the file will be marked with an asterisk,'*'. The total of all tagged files is displayed both in units they occupy on o little room on the target drive, the transfer is aborted and the directory entry is erased. Any previous file of the same name in the target area is also erased.(Sorry.) D The current file is deleted. You will be asked if you really wanthe current disk and in units they would occupy on a single-density disk with a 1k block size. U Undo the effect of T (and take away the '*' or '#'). Commands that act on many files. -------------------------------- M Mass transfer of al  l tagged files to a selected drive and user area. This is the main reason for the program. If the target drive fills, the operation is aborted, with the untransferred files remaining tagged. This function invokes the copy function used bybe asked whether you want to erase the tagged files or the untagged files. Any answer other than T or t means untagged. You will then be asked whether you want to be prompted or not. If you ask to be prompted, you will be asked for a C, so everything said above applies here. If any key is typed while files are being transferred, the transfer is aborted after the current file. The remaining files remain tagged. After transferring a tagged file, the tag is chang Y or N on each file. Otherwise, the untagged files will be deleted. Be very careful with this one. You can wipe out an entire directory very quickly. You can abort this operation by responding A to the prompt, or typing any ed to '#' so you can tell what has been sent. This is for display only, the file is otherwise considered untagged, but see the A command. The '#' can be removed with the U command, if desired. If no user area is specified, or if "*key in the unprompted mode (if you are quick enough). The TAGGED option is useful after a mass transfer. Use the A command to retag all the transferred files, then use the E command to erase them. The UNTAGGED option is useful if " is specified, the current user area of the file is used. You may request verification on mass transfers just as in the single file copy. Just follow the drive and user specification with a space and a 'v' or 'V'. A Retags all you want to clean up a disk or user area, but retain a few key files. Just tag the files you want to retain and use the E command to erase the others. R * Batch rename. You will be prompted for an "Old name:" and a "New name:". In each the files currently marked with '#'. This allows you to repeat the transfers on another disk. Useful when the same batch of files must be sent to several disks. E The E command erases all untagged files or all tagged files. You will case you may give any "ambiguous file name" in response. The logged-in directory, as currently displayed, is searched for matches with "Old name", and the files are renamed, if possible, by the formula specified in "New name". A '?' in "New   name" means keep that character of the current file name, an * is equivalent to filling out the remainder of the field (filename or filetype) with "?"'s. Any other character replaces the corresponding character in the current file name. Whonly PLI source files. S Calculates space remaining on a drive. X Exit to CP/M. ? Redisplay menu of commands. Tags. ----- * Marks a tagged file. See M and E commands. # Marks a previously tagged file that has been tranen the substitutions are done, embedded spaces are removed. You will be asked to approve each substitution before it is actually made. Old name: SWEEP???.* New name: TEST ???.* These responses would result in SWEEP.COM being rsferred by the M command. It is logically untagged, and the # can be removed with the U command if it bothers you. Files marked with '#' can be retagged with the A command. Unmarked files are untagged. Remarks. -------- Whenevenamed TEST.COM, and SWEEP30.PLI being renamed TEST30.PLI. Other commands. --------------- B Move to previous file. Moves to last file if you are currently on the first file. L Login new drive and user area. If the user area is ommer a drive is asked for (and on start-up), the disk system is reset. This is to prevent a disk from being 'read only' under CP/M, and to allow you to repeat operations on fresh disks (e.g., finish a mass transfer after a disk fills by inserting a seconitted, the current user area is used. You can specify a starting place in the directory. Responding 'b3 foo' will put you in user area 3 of drive B:, beginning at the first file >= FOO in alphabetical order. Selecting "*" for user ared disk). It also means that you should be free to switch density and/or number of sides of a disk in a particular drive. This, however, depends on how well your BIOS is written.It does mean, however that a system disk must be present in drive A:. a, logs in all user areas at once. If the starting file is a wild card specification, it is instead used to select the files to be used. Thus: l New drive (and user area): b1:*.PLI will log you into drive b, user area 1, and select  There is no logical upper limit to directory size, nor to the size of a file that may be transferred. The directory size is limited by available memory, though, as certain information must be kept on each entry. You should be able to use well over 15  00 entries in a 64k system. Figure 20 bytes per entry starting at 26k and running up to within 1k, or so,of the BDOS. (Note: later versions of SWEEP are about 2k larger.) The sort is done with quicksort, so it will not deteriorate too badly with laesult in no action being taken. Exceptions are specifying a drive you do not have (see patch points below) or an illegal file name under the R command. It is legal to include the colon when specifying a drive and user area. Thus responding "B3:" rge directories. (On the order of n*log(n).) The rest of the log-on stuff is either fixed - displaying the menu - or linear in the directory size - reading the directory and compressing it after sorting. On my system, a directory of about 99 entries tis equivalent to just "B3", and "B3:FOO.COM" is the same as "B3 FOO.COM". Copy verification is done by computing a CRC checksum while writing the file. SWEEP then reads the copied file back computing it's checksum. The two checksum's are compared anakes 3.5 seconds to come up. Of this, about 1.1 seconds is used in the sort with the rest split about evenly between the operations before the sort and after the sort. (Disk access is not figured here, since my system uses the Intersystems CACHE BIOS wd you are told if they don't match. The algorithm used is based on the standard CRC-CCITT polynomial: x^16 + x^12 + x^5 + 1. The algorithm is similar to the one in D. Barker's corrections to CRCK, and it is now table driven. It is coded in 8080 assemith track buffering. Once the directory is read, it doesn't need to be read again. Using the standard system raises the total time to 4.9 seconds, the difference being the physical disk access.) File transfers make use of as much memory as possible tbler for speed, and is found in the file SWEEPIO.ASM. The second crc computation is done with a buffer that is offset 3 bytes from the original buffer. This is to help catch memory errors. Any CRC errors which appear but are not flagged as bad disko buffer data. The V command buffers only 4k (or what's available, if 4k is too much for either your file or your RAM).This allows large files to be sampled quickly, without reading in the full file. Invalid or empty answers to any prompt will r sectors are probably due to bad memory. The CRC verification takes approximately 2.5 times as long as the straight copy. Patch points. ------------- Two parameters should be set for your system. If you do not have a PL/I compiler, they can be   set with DDT. number_of_drives should be set to the number of drives in your system. This will eliminate SELECT errors. Patch the byte at location 107H. It is currently set to 4. max_user Set this if you want a number other than 16 (0-15). Patch the byte at location 10CH. In addition, you may want to patch: CRC_polynomial If you prefer a different choice of polynomial, patch the bytes at locations 356CH and 3570H. If you know enough to have a preference, I assuAltos Hills, CA 94022 3 April 1982 P.S. I did not write this program, nor do I have the source code. However I did modify it extensively to suit my needs and then called it DIRR. me you know what values to put in. choice of polynomial, patch the bytes at locations 356CH and 3570H. If you know enough to have a preference, I assu!  <%!]6.#e6$[*!"\%*6"}֩|R2222!"*"" „u| > O:yʯ;7^$̧2 O:yu,us:?| $.ʎ#ʉ<ʠ>ʷù>ù>ù> > 2u!> 2F> ~!w¹O:yʹ:yʹ#!:=2ʅ `w:> > ~> ~>ù>!™w>ù>2!u22ù>2!u22ù*}|jw+*###>E#>X#>-͂*:6+} +6+6X+6E+:w+:w+6͂ær͂æ͂æ͂* ͈D͂͂͂X͂æ|`ڄ{( @ҡ:?$.#<>(@($^|1:::12 !3_^#V{w+#~!: 1_^#V{1 w#*#"!6!6kb"" :::<2"  z Ms#r#:C z gM>  ~ “> #_È͂͂*͟*~# ¹6~#_  |{0_!9"1>2͂**}_|W!x< ~#/bkxp : <2 Z~#2 : 2 lA+"#:o&6 !1> 2F:!">2!"͟*#":  G*H6 #6 #"òe!2|\~#_x{ w#SUB error line # $ (Ex Already Present)$ Text buffer empty$ Input/EX Buffer Overlap$ No parameter or default parameter$ Parameter$ File filename.typ$ not there$ Control character$ Too many arguments - $EX 1.2 08-11-82$ "   $`pppppppppppppppppppppppppppppppp "B"D"F~+"D2\1B*|g."H*"JL ͷ*J!o ͷ1B*D~ʛ*J"*B"! :O*HAO{G!9"]!BOʭRʏ¨R*D#w"D>*]:Y2ZS5)AA 2Z> O:[y¨UÅ*F"D2[2Y2\ÅORʏ UOG Gí!Y1wí!\=wí2[í:Zy2XU*D~+"D*D#"Dͪ*B*{zog"!*]R1B!ä!ͪ*J!L ͷ~#·:X!0:A[a{2,:\~$#OU >>>Ex Aborted<<< $ (Ex Active)$ (Ex Completed) >$LORU   I I!$!B HI!H A$ I"I$ I"B"D"F~+"D2\1B*|g."H*"J   I I!$!B HI!H A$ I"I$ I"B"D"F~+"D2\1B*|g."H*"J#   Patches for the Osborne I The OSPATCHx programs are a series of programs for installing patches in software for the Osborne I computer. Each OSPATCHx program installs a specific patch. For any one patch changes may be made to ms) ZCPҠ provide thos sam functions an more Se file ZCPR.DOà an OZCPR.DO o you loca CP/ Bulleti Boar System. OSPATCH2 is expected to be releasved Oct 82. OZCPR is by Micheal M. Rubenstein. Apr 1982 ZCPR is by the CCP-Groore than one program and/or to the system. OSPATCH is a general purpose patching program to handle the transfer of patches to proprietary software under CP/M, including to the system itself. The program performs extensive validation bup: Richard Conn, Ron Fowler, Keith Peterson and Frank Wancho. OSPATCH2, excluding OZCPR, and OSPATCH1 are copyright, 1982 Mechanized Knowledge Corporation. efore and after installing a patch. The program also validates itself, to ensure it has not become corrupted, and that credit is given where due. OSPATCH1 installs corrections to COPY.COM, to correct the way that program formats disks. This patch will somewhat improve the reliability of disk I/O on the Osborne I. The Copy function of the program is enhanched to show status (reading, formatting and writing). OSPATCH1 runs only on an Osborne. Patches by FranVPatch program, (c) 1982, Mechanized Knowledge corp P.O. Box 298, Sta V, Toronto, Ont. *d}Press 'Y' to proceed any other key to cancel Y§ ʧ22N(} Do you want to patch anyway? Press 'P' to proceed, any other key to abs Van Duinen, Aug 1982. OSPATCH2 installs OZCPR, the ZCPR adaptation for the Osborne I computer. ZCP i replacemen fo th CC (Consol Comman Processor fo CP/M CC handle suc function a TYPE ER (th non-transien commandort P§} OK ... good luck!!! ͸:2 pK**9} |([}Consistency error, patched version not as expected Patched version not saved >< ͂à!; ̓Patching !"0*3N#Fx(##^#V#~#fo*0L0S0#*0$  R*,L0@}Consistency error patches extend beyond specified length "*̓Loading R\̀ \ >o0$ѷR"*̓Saving R**}|G\̀ b <(>o0$D } +++ Error on write !!*7z! R!L̓VC@RB.#C7RB%+w#Iw+IɩwIɩwI:=GV!d~#_ =&-g    G='-g    G=(-g  G=)-g    G=*-g    G=-)erifying *5N#F-ʤ0><çN#Fxʤ-#^#V#~#~# (ZN#F#~#fo x y(} is not as expected "} has already been patched 7!24####**[.L(M8$}Program longer than expected #}Program shorter than expected !24:2Mechanized PO Box 298=.)Knowledge Station "V"=/)Corp. Toronto, Ont.Press any key to continue!"?O*?yO}o|g0|g}!o "?͑ ͑ [?*?|>        ͈ ~͑ # x ͷ  ((*C (( 4 x = |}!\$> <̓ +++ Cannot open   ͒} !~ (ͼ!~ . ͼ}System~ #_ ###~ ?# (_ } a{__ 4   ~#(_                        ! " # $ y ((( ((AAAAAYABGoodbyes;!̈́('(( (( O|(y~ #{;>:Gͣ >K : >  ~ #>:Aȯ2A! ".! ",!G "3! "5!.}"9!<  COPY COMk, < K3  !fi/lmsy|V .} <On5 !Ogt Og p_ p# V W  *  s /J K R{W͈ͬ-W͈ͬ0 > -!  4x( "yʂ ( > x!o ~#A4Ͳ!*~(#>*Ox_0A~#> -> >2=>(2=!4!10B%+C7RB.#C@R3H XR kG m Sector image constantProgram version noProgram bannerTrack image building routineFormat routineCopy routineSector numbering routineSector count fieldCopy read routineCopy format routineCopy write routineTrack messa%  geTrack no display routineOverall program( PN 2N N 6N Formatt$ Read$ Writ$3.1=",OSBORNE DISK UTILITY Rev 3.1=#(Patches by Mechanized Knowledge Corp.!:/ (!S- specific sequence of characters at the begining of every track, the track header, followed by another specific sequence around each of the sectors (10 on the OC 1). That track header gives the hardware time (every disk revolution) to synchronize with the R"0:/GB"@F#~#+x~#(!:/G:w##q 1!1!2 F*@,, !) F! FPing Track $'Patches for COPY.COMThis program patches the Osborne I COPY program, version 3.0, primarily to correct the way it clock and data bits from that header, before sectors of real data arive underneath the read/write head. Version 3.0 of COPY, the Osborne disk formatting program for ROM revision 1.3, only puts out the 10 sector formats, not the track header. (It is actuaformats disks. The program to be patched must exist on the current disk under the name COPY.COM. It is validated to be the correct version of the program. Discrepancies are identified. The updated version replaces the original one. Press any key for fully amazing the disks can be read at all!) The formatting program for ROM revision 1.2 (FORMAT version 1.1), did put out that track header. While this fix will somewhat improve the reliability of disk I/O, it will not solve all problems. The Irther information, the up-arrow key to go back to a previous page There are several reasons for the somewhat unreliable disk I/O on the Osborne I. One of them is the incorrect way that COPY formats disks. The WD1793 floppy disk controller chip/O routines in the ROM part of the OSBORNE BIOS are at best excedingly convoluted, at worst just plain wrong! Unfortunately, those routines cannot be quite as easily patched as this COPY program. The Copy function of the program is changed to show the acti used in the OC 1 computer has certain specific requirements for the way control information is recorded on each track. This is not the actual sector data, but rather the special sequences of characters that surround those sectors. The hardware requires aon it is performing on the current track (Reading, formatting or writing). Now at least when COPY stops on an error (sorry, they will still occur), it shows at least which disk the problem relates to, i.e. source (reading) or destination.&   The changes to COPY.COM should be transparent, except for fewer '... Bad Sector ...' errors and the Reading, Formatting and Writing messages. To change existing disks, merely use the Copy function of COPY to transfer the entire disk content to a blabe patched both before and after patching. The patching program also validates itself. Courtesy of Mechanized Knowledge Corporation, Programming & patches by Frans Van Duinen 18 August 1982, Copyright Mechanized Knowledge Corp /J K3H nk diskette, and back to the original disk again. The Copy function formats each track before writing to it, and will use the same new format. COPY will, of course, still be able to read either format.  Unlike the original prog4B Aro y6‰zS_Fè~*!~¨#^+F*!~G¿xk@xvkx80kx645>=*!~*!ram, which used an exact layout of the sector image (304 bytes), this patch uses a table (36 bytes). Actually, there are two tables. Also included is a table to build the format for double density. Changing the byte 62Fh from 0Ah (ten) to 12h (eighteen) sectors per track will cause the program to build the double density track format. This actually cause double density, however! It is merely included for anyone experimenting with double density. Note also that even for DD the character E5h is used as data character, since CP/M uses that to signal unused Directory entries. This patching program is expressly written to provide a general purpose patching facility for proprietary software on CP/M systems. The program validates the program to '  p where d: is the (optional) drive containing filename.typ. The program will prompt for selection of options. See LISTT.DOC for further information. Also, see LIST on -FOG/UTL.003. Squeezed assembly language .AQM files may be unsqueezed usin use of SWEEP36, which may be found on -FOG/UTL.013. Jim Woolley FOG Disk Librarian November, 1982 g utilities found on -FOG/UTL.003, .004, and .014. DIRR is like the Osborne 1 utility XDIR except that it displays four columns across. This may be useful for those who have an 80-column screen and, perhaps, double-density disks. Place DIRR.COM in drive A. At the A> prompt, type DIRR d:filename.typ Both d: and filename.typ are optional. See DIRR.DOC for further information. Also, see SUPERDIR on -FOG/UTL.005. Using EX12 you may enter a series of CP/M commands and related line input to be executed sequentially. Its function is similar to the Osborne 1 utilities SUBMIT.COM and XSUB.COM. Place EX12.COM in drive A. At the A> prompt, type EX12 The program will prompt for each command/input line. Control characters may be represented by ^ (carat) followed by the letter defining the control character (for example, ^C, ^P, or ^M). Terminate input by pressing as the first entry of a line. Also, see SUPERSUB on -FOG/UTL.004. SWEEP36.DOC describes