IMD 1.16: 28/05/2007 17:02:47 -FOG/UTL036         -FOG/UTL036/UTL#036DOC/ %&FILE AQM<FILE COMFILE DOC IDUMP AQMIDUMP COMLIST3 AQMHLIST3 COM !LIST3 DOC"MB-SAVE COM#MBASAUTOCOM$PRINTSQ COMC Q AQM Q COM'QWIKKEY COM(QWIKKEY DOC )*SAVE DOC +,UNERA15 AQM@UNERA15 COMUNERA15 DOCWRINST BAS WRINST DOCWS-SAVE COM/UTL#036CRC-vUNERA15.ASM^  ! "#$%'&(*)+,-./021346578o9:;<>=?@ABCDFEGHIJKLMONPQRSUVWT\Y][XZ[7o_%)&9o^|,ԑ׫*_Y&,k8W>گ,#OUJ_T,>t5ħSR+˥jJ\C[K~n}  ) %u[fW'R UjXZs+[-[5|J]bUUBKWT~6n(ToW--:RTWJeg?>94j*7UϡeՕt:OR3ÿ`r?]}òWE5oi]ߚ)r շHY|S 'V~ܴOj)i߽ |XZZ+k[TSVinڐHάqdQ~8(?3kԑ:R1mߢʵMY% *E$ ~ڈԑoQ#SgdU7ŪdM?|eM姑]1,OY~V)VXM$O/ Ӊ~)o8(?2*wj)+ߢ_.o*R75T"eOIO[iS:Ҕ‚=|>o&_?jFHfSǔ}3RrW)KV +7ԑvWvVvrVg8܇at]UhhkH eWWֵVnbSkW hṘ?W>e-T>S\O+/2%aӟ}[eu磺s l'0'oXsMO "ߪ>RON'V ܵ~R/K(܇ajoY]Hs|U5VB|Xka}/-lvrt!u(4dr#ԞQݹwۛ_o'%rLPqdQ~P;3=;7Ai3cOJ<"kYQZ`xu!j:ƑE1K91Ӂԙgc&+хTGSaY[=I,u`s |%#8(?5 L)gA"ˑ:RGIky/ MG. 70'^ՎDO+i?J,=_ >\?*_]YZ%>zU]J@aYC:aZ$8~ꕕkx2sT*mr!q/WJv#OU)^+ ^\pԫj*kZeu+?jpkz7oY]}]?|eM#zBC'r߰ kZκ';HDJ íݼŲw_}հ_aYWJ[ܯvW*; ;9+8x꣺s{-\`rK/2%aoY]}Twn_- i>i0鷬>mHpsbUM]]?;=ji鯔5|ڷ0TWލ7$_FURb7~z:RT+ S\U?p 2a^o+ípr?UK>oquXx zk{suXxjp'^Վ+ʷ̉aܵí| _9'^Վ+jU]=)@[Szk~3~I<AO>nN 7SAO/ n(xsXEΧ锕 O V%ǽ\mjXZԑ.Gg5Wյë~UçSR -+x)>F3/ޣ#u>HgNkmarfvz姲VSK_%>-K>H#n(/n(/n(/n(/n(/n(/n(/n(/n(/HrVM,}"_UE*S.HuD}YL_}nu@}q9 3 Gfy]. I<0#M)5re`b5r•x]GH ־lsn,M&H x4Me1RGHݜ;-N _fX>'L:҄zt9xaSqvTv99JũQrv9s*;: sgQ,8   pvNex(H##unNSucȟl2BE-, ! u l!ޢ"A)TS88 R 0gwNeQ,89:S١S(v(8;;:^;HQ(vv9.QrF45RGH݋{]wn޲yv=mnNڑԽH#8 N;979NWKG.؏-^ѿIky/H3.P< -C;y_|oOi2i$rgZ>koOH4iOHs u{9RGHc|+7׏/p%r_9v>=>H)M8ACF : ${ْaS ub2dLyS>woG.df=۹A׿fyߐ&nlHsqCuP|_6RG!&h37Oy-7#i@fcF[kG[|&GnCsĒ4136K]& ͚M3ӯ?壺sC0rԑ"{#ws-'hiH}=RGH[/uY|[oG6dqdTvގlA4 $3ӣ-u p֑<i(]Loyuu5@ sk M̌z>Hs u{9RGH-V6qSoeRԯJ壝oGnC+gPnQ&xfyMO:̽#uі܏r[(7-.0Hp^gz`kْaibflLPl0ѩ(fzRn E7S_Yv&f~LPD5b/ rYPid,VW`:҄zt9rX\4Qi$ p,j )_-F45RGDuS(fzW•x]i9v>=>HC[>v G7+9GWysHCHv>ƁkM>jy#m@.RGќ{9ly idْaLgibfl0\3}._ypCR>4Jrc&L4aHFBs! yL&asܾ[Կ܈4[I8Lcg4ACƞcCow79_&G^&Ҩ|Ǟ-'m4[28 umOf l0٥{97yO(ibflLPL7AiW+~O= iԢ=ӯS͐f+ٜ<#|JF HiB=۝~|%l00ӯ49_ hj4[2Lvj{Z M;yx߃4 $4A37cR)HgD{4f`jǖ\i is/GH?;W݂fR?W)wE}f un qd^7or\i ibflLPL+}ﱙ+i$ pv8K]79ʃ! `l%9l3}/5rH4d•x]iHgCHH4d왞c,>_J_Af6SffaoW V6r^KCvAHt4.LgRsבd0i@c"l*0=3|_})7OF5&@2uyE RGHo8ǖJ<x}3Gןǖ:0]3sst!V4[2, M̌Ms i$rgzM)id9W7vfK1&IDtS9<ihe#z3ӳYP[.RG)KM)!M;y@[L•x]&ېAΎ3]WKOގlH20Jrt5Dk~3~<-'ْaLor~+Iy&zl4]73=),M~+@Cz7 aB1S^SH##͕aH#{#a OVf^WysȗDM&a<[v7ʇ.ZdY8n^\.i - Z^EW=@ْan^AoX-k4k6uLPLߗ-ޠR#ui7S^|?壝^j!u$ovQ=! uQVFH amk{Qog7j& ͖  %=RG?ԯׁɇM l{;u9! RG ]&f~A5:f)gg܃aH#y3kMmxm__劎ԑ  Yme%7Ci?d]H amrf-W[;0.Ǣ# yLg7S#O$i3}+Iy\>C;rcz&ff+I[I[d \9H^ԑ:R.-ؘʟ|fK΂idq4136&(mF-&: F6ӯ49ly iqC_9H^ԑ:Rf}{<>x3C #58136ͮm6#|?{ב:RkrdJrc#wP١> ]G$v2l%9aHsE$9is/GHY7{[gebfʫz 1oO͔ԑՍ u$[+F4]73=),M~+@C VSoZ ب74A:\9f{6i-9Wo^?v{s/GH7UbcAh7$>e G}fͦYʙ, u{9RGHf*䷒?A R=6)܏K:Vb$';Li'Ct?\?4A0=r>p/C)HibflsF$': is/GH?+Ǿ•x]GHb 9ML \oOHs_9-_P.+Hibfl}fz%>/oyݔilꜻ^Lw؃ˑ:RG>?wc˛_ol2A0|K|Di-uܾ[|xnCMS^ MА;LAHF+$is/GHI:h` ]om4136 ͕aH#A{-M)wW_>W)wEqn䖯Y~]~+W:&8 n2ӛȇrSnCrd կ䖯Y_4 97GLor]HD'#͖ c: H3cB4ܙ|xE$r>5PR7|,J<l#nIm/AhoȆԑRqمn8BEmmv!Ţ .$1΃6T^G8B\YAh.r:̽#u{r3{j_[@e蓃 ־S/ #u `#qx7'p>Q=! uQVFH amk{Qog7j& ͖    8 Unerase Version 1.5 (11/20/82) for CP/M $1.4 $2.2 $File Recovered -- DOUBLE CHECK before using $ ABORT -- Illegal drive requested $ ABORT -- No file name specified $ File NOT found $ Change disk and type RETURN $ Error during disk Write - ABORT $sion 1.5 (11/2     1mͯJ : ʆ:͹ɯ2 !~ŠŠ w>2 : <2  f: ʵ: O: O#6: =2 : <2 #] #   >*.2͹_:\O|t:0^#V"^#V#}2 !~2 >04͹:\L<=2\:] ͹*:G}͹h͹~#}͹: : O: O ?; :m_P͹  |g}o*)M͍]|t:0^#V"^#V#}2 !, n#}͹: : O: O ?; :m_P͹  |g}o*)M͍]UNERA15.DOC - 11/20/82 RECOVERING ERASED CP/M FILES This program appeared in INTERFACE AGE for December 1981 (pg.96) and was written by Gene Cotton. When a file is erased, all that happens is an E5 byte is placed at the start of that file name in the disk directory area. This releases the sectors used by that file for future use. If you notice you erased the wrong file, you can immediately recover it by using this program: A)UNERA HELLO.ASM (name   of recently erased file) Since the file allocation table usually proceeds sequentially through the sectors remaining, you can often recover an erased file even after some additional disk activity, particularly on a partially-used disk. Normalh wild cards). COMMENT2: Files may also be recovered using programs such as DU, DUU, DUUP, DU-V79, etc. Those require some talent to use and do not compare with UNERA for simplicity. They are very power- ful multi-ly by that time you would have forgotten the name of the file you wanted to recover, anyway. If you do recover the file immediately, it should be back to nor- mal. If things have been added to the disk in the meanwhile, the file might be recovepurpose disk-handling utilties. Notes by: Irvin M. Hoff Los Altos Hills, CA 94022 red intact, or sections may have been overwritten. In that case, examine it carefully, and with luck it will again be a normal file. In any case portions can likely be recovered. This program does not support "wild cards" such as ? or *. It automatically adjusts for current CP/M 2.2 or for older CP/M 1.4. It can be used with Micropolis drives but in that case you need to edit one byte at the start of the program and reassemble. COMMENT1: Using ERAA.COM or ERAQ.COM with which to erase files rather than the ERA command will minimize accidently erasing incor- rect files -- those programs show the name of the file to be erased and asks if you want to then erase that file? (They work wit  7||7zZZ)|/g}/o#|͉k|/g}/o#ɯ2qZZk:q|/g}/o#|/g}/o#:q<2qqDM!xxGyO҃)v|͔`i|)Öxڷz/W{/_ѯzW{_=yOxGæ2qZZ͉M|}ȯ|g}o)|/g}/o#z/W{/_!9~#fo! ! ! ! ! ! !9~#A"s!`*"!"!Y">2>2>22!"!"!@"!" ʞ!F#x±~#±!b2r~# "2r+}|~#G:rx"2r+w# +6#!6#2w2x*s!>r<o&F=-` r'~h6!+`W?_!~7z?` :>ª@w#G.¶ww#?*>?w#> w#.7:77!a{   `OE!y6$ -7rBo&))T])))!y*K͞+%"i'+FÎr ͖ 8{ Ăw#w#w^#V#*~#fo^#*~#fo^#V#*n^#*n^#V# ~#fo^#& ~#fo!+!#!+!#!+!+}|z{|}|z  !9DM! ! ͐|! ! ! ͎ ! ! 6! n͐Ҷ! ͐!v !).!x ͐͐ ! ͐ | ! ͐ | ! ͐ | ! ͐ | ! ͐ | ! ͐ | ! ͐ | ! ͐ | !).! ͐ !.ͧ`is#rz ͐##n}Q !q ! ~#fo! n&)~#fo`i >q*>Q>a6>ʀ>xB>ʊ>N>ʍÍ`iͽ >d>s>ap>v}}`ic î`ic îî! ~#fo! n&)~#fo!O ! 4!ü!9Syntax: TYPE filname.typ ... Wild chars. (* and ?) OK, Mua !9 '%s' bad name, (name too long) Error on %s, check your spelling. Error on %s, check your spelling. File %s not for distribution. .COM.OBJ.BAD.LOG.OV.REL.CRL.IRL!9DM!" ir{!)| !).!a<!)! s#rltiple file names OK Ctrl-S pauses, Ctrl-C Aborts, Ctrl-X skips to next file can't type %s... !9DM͐! ! !͑ !")!")!")!) `is#rz *)| ͐͐ Ø !).! !9 Listing file %s !9DM͐##^#Vr+s`i! s#r͐!) s! ^#Vr+sn} !)! s#r͐|S͐|o͐!E !).!<!"%!"%! w#w͐͐͐))%!)s#r͐))%##!)s#r! ^#Vr+sÃ`i͐!f ! !͑ !")!")!|p !͐͐~#fo͵ `is#r!|C ͐##^#Vr+sÇ ͐##͐?+s#r͐͐s#r͐^#Vr+sn&Ç !9!9DM! n&|g}o! s! n} !") ! n&| ! n&| ! n}  ! n}  ! n} ")!)̈́! s#rz.*)|.͐͐ !).!<!9%s has invalid decode tree size %s -> %s !"i!c"i!9DM*i|ڨ*i+"i*i͐`is#r!p|͐"i*i#|!0u"i*i͐"i|!*i++" ! n}  ! n&!9DM͐W|J ͐! ! !)͔͐! s#rzz ͐!. ! ͐+!! s#r! ~#fo n&|ڿ ͐!R !).!x ! ~#fo#n&| ! ~#fo##n&| ! ~#fo n&|i*i!9!9DM`iw#w*i#"i|s͐ "i#|F!!"i͐))%*i|g}o)~#fo`is#rà͐))%*i"i|g}o)~#fo`is#r͐|͐#`is#r͐|!͐`is#r͐!9!9DM!!͑ |  t!!͑ ! s{!͎ t! n}[!!͑ |E,!!͑ ! st! n}t!  !")! n} *)+|g}o`is#r`i^#Vr+szʿ! !͑ *)#")Ù! n&!͑ ! n} ! n} !")! n} *)fo͐q)~#fo͐o)!D ~#fol|ʚ͐q`i^#Vr+sBÚ͐q!s s#r͐s͐җ! ~#fo͐s)! ~#fo͐s#)~#fos#r!s ^#Vr+sN!q ^#Vr+s!o ^#Vr+s͐y͐s#r͐{͐s#r!!u9*.*!9DM! w#w`i6#6͐#")!9 !9DM͐`is#r͐n}ʘ͐n͐ n}Š͐`is#r͐ ! s#r͐n}c͐Þ`i^#Vr+sn! ^#Vr+sn}ʇÊR! ^#Vr+s!!Þ!9!9DM͐n}! n͐n}͐! ^#Vr+sï!!9DM!;!!n s͐{~|e! ~#fo͐n} "e! ~#fo! ^#Vr+s! ~#fo͐n&|g}os`i^#Vr+s! ~#fo n} ʒ! ~#fo! ^#Vr+s6.`i6 #6͐|! ~#fo͐n} ¿! ~#fo! ^#Vr+s! ~#fo͐n&|g}os`i^#Vr+s#fo! s#r͐y~#fo! s#r`i6#6!l w#w!L!! s#rzF!!o 6#6͐|͐o͐! ~#fo͐o)~#fon}!͐o+|µ! ~#fo͐)!s#r! ^#Vr+s!l ^#Vr+s)!D ! ~#fo͐o)~#fo#s#ró! ~#fo͐o)~#fo#! ~#fo͐6͐!9!9DM! ^#Vr+sn`is{]`in}*T`in}?Z!c+!c!9!9DM! ~#fo#n}:! ~#fo#n}:! ~#fon&! n&! ~#fo##s#r!! ~#fo#n}:! ~#fon&! n&! |9! ~#fo`i^#Vr+s)! ~#fo͐o)~#fos#ró! ~#fo͐o)~#fo! }!!. !B s#r! ~#fo͐o)~#fo#n!/ s{:! ~#fo͐o)~#fon!. s!0 !B s#r!. n&!;!!- 6͐|Ң! !- n}!!;!!, s!, n}~#fo##s#r!! ^#Vr+sn`is{`in}?d! ^#Vr+sn`is{[`in}.[a!`in}*͐n`is{ʕ! ^#Vr+s`in}.’Õm͐n`is{ʽ! ^#Vr+s`in}.ºýÕ`in! ^#Vr+sn}!͐n}!!â!- 6!, n& ?͝!|ҟ!, n& ?͐B! ~#fo͐)!. W#L!s#rzy!!. ! ~#fo`i^#Vr+s)~#fo!n n&!;!!o ^#Vr+sO!o w#w͐o͐lҶ!q 6#6͐q͐Ҩ!n n&! ~#!9!y9DM! `iq`i!9!9DM͐F!͐~#foͤ!!9DM`iw#w! ^#Vr+sn}ʄ`i^#Vr+se͐Ë!9!9DM͐!͐ͧ!s#rzҾ!͐##w#w͐~#fo!9DM͐`is#r! ^#Vr+s! ^#Vr+s  ns{ ͐!9!9DM͐ `is#rzb͐ ! s#rzb͐?͐h!h!9!h9DM! ^#Vr+s~#fo! s#r͐! s#r! ^#Vr+sn`is{`in}%¬! ! s#r! 6#6! s! s! s͐n}-! ^#Vr+s! ^#Vr+snѯg`is#r͐" !9!9DM! n&_ |R ! n&Y ! n&&!9DM! n&|ͯڊ ! n&|ͩ 7*+++:G_*DM! o&7:)~:,"s!"u*| !**s!!4͐n}0! 4͐n&͟}.! 1!! s#r! ^#Vr+sn`is{.y! ! s#r! 4! ^#Vr+sn`is`in&+ }DʥUXOC9SjÖ͐~#fo|! ^#Vr+s6-͐͐~#fos#r! ^#Vr+s! 6 ! 6! 6! ~# ~ !6*u*+"*"*u#"u ) ,7:O* *r!+*|/g}/o#9v!r!#"z{7*~# ʄ! ʄ!+*&! n&#7,2q*&:q):!=!=r:qo&  ! > _fo! n&! ^#Vr+s~#fo! ѯgs#r! ^#Vr+s! ^#Vr+s~#fos! ^#Vr+s! n}}! 6#6! ^#Vr+s~#fo! s#r͐n}͐|! ^#Vr+s! ^#Vr+sns! ^#Vr+s! ^#Vr+sØ͐6! ! s#r! n}9! "*~# ʄ! ʄ!+*&! n&#7,2q*&:q):!=!=r:qo&  ! > _ ^#Vr+s!|9! ^#Vr+s! n}0!03! s͐! ^#Vr+sns{b! ^#Vr+s9! n}ʓ! ^#Vr+s!|ړ! ^#Vr+s6 lé! ^#Vr+s`insÿ! ^#Vr+s`insà͐6!9!9DM͐n}! ^#Vr+sn&!!9DM͐͐ K͐^#Vr+s͐8͐0@͐7s!&Ö͐ ͐͐ ͉͐`is͐ ͐͐ )͐`in&#&Ö!9!9DM! n&|ͯ! n&|ͩ!9DM`iw#w͐~#fon&͟} ͐ ?͐   (DEFAULT IS 10)";SL: SL SL cZ "LINE SPACING (DEFAULT IS 10)";SP: SP SP ,cd "R",#,NF$,: #, AS AR$`cn "R",#,"B:TEMP.DOC",B: #,A AS AW$, AS E$xcx ::TO LOAD T$cNP:NL:T1$""cZ1$"PRINT":Z2$("):Z3$":"cZ4$":A$=INPUT$(1):PRINT CHR$(26)":Z5$"HIT ANY KEY TO PAGE"!d NLNL(NP) :: JUMP TO NEXT SCREENQd ::EXTRACT 52 TEXT CHARACTERS FROM T$tdT1$(SL)" "Z1$Z2$T1$Z2$dSLSLSP:NLNLd ^::PUT TO DISCd d #:T$AR$:d N1 5 eT2$(T$,):N2(T$): N2  : T$(T$,N2)1e (T2$) N1  : LeT1$T1$T2$: N1:N15ceT1$(T1$,N1):ue NPNS @e"T1$(SL)" "Z1$Z3$Z1$Z2$Z5$Z2$Z4$e, ^::PUT TO DISCe6NPNP:SLSLSP:NL:f@T1$(SL)" "Z1$Z3$Z1$Z2$"HIT ANY KEY TO RUN"Z2$Z4$2fJ ^::PUT TO DISCBfT #: #:jf^ AW$T1$: E$( ): #:T1$"":wfh ()fr" WRINST Instructions" a : AZa (): "DO YOU WANT INSTRUCTIONS?":A$$() b A$"Y" A$"y" h1b( "NAME OF FILE TO BE READ";NF$Vb2 "NUMBER OF SCREENS OF TEXT";NScb< NL(NS)bF I NS: "LINES ON SCREEN";I;: NL(I):bP "STARTING LINE NUMBER f|" " .g"This program will take WordStar text and convert to" kg"PRINT statements one text line at a time. Thus" g"program insturctions may easily be added to a BASIC" g"  program. These instructions are an example fo the" "h"use of WRINST. The insturctions appear on the" _h"screen exactly as written by WordStar." h:"HIT ANY KEY TO PAGE":A$$(): ()h"The instructional text is ename[z]. Now the text" m"file is prepared to be converted to BASIC stat" 5m:"HIT ANY KEY TO PAGE":A$$(): ()rm"ments." m"Now enter WRINST. The program will ask for the" first entered to disc with" i"WordStar as a document file. When entering text the" Ei"right margin should be set to 52 so that it is" i"unnecessary to scroll to see all the text. WRINST" i"expects the text to be setup this way.m"filename that contains the text. Include the source" )n"drive if it is not the default drive. The program" fn"then asks for the data on number of screens of text" n"and the number of text lines on each screen. Lastly" n"the  As you enter" i"text keep track of the number of seperate screens of" 9j"text to be displayed and the number of lines of text" vj"on each screen. The program will ask for this data." j" " program asks you to provide the a line number" o"for the first PRINT statement and line spacing. The" Zo"value of 10 will be used as a default if you do not" o"specify otherwise. That's all you need to run this" o:"HIT ANY KEY TO  j&"After the text is complete, you should carefully" -k0"review for typographical errors. It will be" jk:"difficult to correct them later." kD:"HIT ANY KEY TO PAGE":A$$(): ()kN"After the textPAGE":A$$(): ()p"program." @p "When WRINST completes its task there will be a BASIC" }p"program on disc B with the name TEMP.DOC. This may" p "then be merged with the rest of the source file is saved to disc, PIP must be" lX"used to modify the file. With PIP in drive A and" Plb" " ll"the text disc in drive B, the appropriate command" lv"is: PIP b:filename=b:fil code for" p*"your program." &q4:"HIT ANY KEY TO RUN":A$$(): () ,q>ode for" p*"your program." &q4:"HIT ANY KEY TO RUN":A$$(): () ,q>   WRINST Instructions This program will take WordStar text and convert to PRINT statements one text line at a time. Thus program insturctions may easily be added to a BASIC program. These instructions are an example fo thilename that contains the text. Include the source drive if it is not the default drive. The program then asks for the data on number of screens of text and the number of text lines on each screen. Lastly the program asks you to provide thee use of WRINST. The insturctions appear on the screen exactly as written by WordStar. The instructional text is first entered to disc with WordStar as a document file. When entering text the right margin should be set to 52 so that i a line number for the first PRINT statement and line spacing. The value of 10 will be used as a default if you do not specify otherwise. That's all you need to run this program. When WRINST completes its task there will be a BASIC program t is unnecessary to scroll to see all the text. WRINST expects the text to be setup this way. As you enter text keep track of the number of seperate screens of text to be displayed and the number of lines of text on each screen. The programon disc B with the name TEMP.DOC. This may then be merged with the rest of the source code for your program. If you will now press any key, WRINST will continue.  will ask for this data. After the text is complete, you should carefully review for typographical errors. It will be difficult to correct them later. After the text file is saved to disc, PIP must be used to modify the file. ́\͓\͘:2:2*ͻs:=2s:s~s ^:2_#3͝.>sͬ _\\  ɀ!s W S - S A V E Version 1.2With PIP in drive A and the text disc in drive B, the appropriate command is: PIP b:filename=b:filename[z]. Now the text file is prepared to be converted to BASIC stat ments. Now enter WRINST. The program will ask for the f0 for Wordstar 2.26 on Osborne 1 (c) 1983 by John M. Steele donated to FOG, its chapters, and members for non-commercial use only *R E L A X and read this. If your text is still in memory, WS-SAVE will recover it for you. *Be sure th  ere is room for your file on the drive you specified (or default). You can load a disk now if you are not sure. WS-SAVE will reset the drives before proceeding. NOTE: The disk must be formatted--no miracles done here. *WS-SAVE may sav REGS MOV E,A ;SET UP MVI C,WRCON ;WRITE CALL BDOS ;CONSOLE ;CHECK FOR ABORT MVI C,CONST ;READ CON STATUS CALL BDOS ; DCR A ;CHAR TYPED? JZ EXIT ; YES, EXIT POP H ;RESTORE POP D ; THE POP B ; REGS RET ;AND RETURN ; ; He past the end of your text. After you see the end of your text, hit ANY key to STOP WS-SAVE. <<<<<< HIT ANY KEY TO BEGIN >>>>>> $vͺIDUMP.ASM=  !"#$&%'(o)*,+-/.0213457689:<; ;TIME TO SPACE CZ SPACE ;..YES MOV A,E ;GET ADDR AGAIN ANI 0FH ;END OF LINE? JNZ CHAR ;NO...LOOP ;END OF HEX, PRINT ASCII POP D CALL AST ;PRINT '*' ASCIC LDAX D ;GET CHAR CPI ' ' ;PRINTABLE JC PER ;..NO CPI 7FH ;PRINTABLE JC OK ;..YUt^/ߟX^x_`P2 Z_{U,/z5y;5Wwz2xCtF !VTڎJ"Xi4UA$zriAK҃?emD{{W'5u.>;\Ɖez AOkow-bES ;PRINT '.' FOR UNPRINTABLE PER MVI A,'.' OK CALL TYPE ;TYPE CHAR INX D ;POINT TO NEXT MOV A,E ANI 0FH ;A=0 IF END OF LINE JNZ ASCIC ;MORE ASCII CHARS CALL AST ;PRINT '*' MVI A,13 ;PRINT CR CALL TYPE MVI A,10 ;PRINT LF CALL TYPE ٥xŧ_ClƷ$Vcd՝tv2N5@g񃉅]4a?Ƿ+^G5LToag;TbE0FVI;N:ߡ&z^ׯuu=wH|*^GezC Nk~-, ˌ j:C ~_BUձe JZNwO^'obVۨ3P"yf+Y  ;END OF SECTOR? MOV A,E ;GET ADDR ANI 7FH ;IF A=0 THEN SECTOR END JZ RDLP ;READ SECTOR JMP LINE ;NOT END, LOOP ; ; SUBROUTINES ; ;TYPE ASTERISK AST MVI A,'*' ;CHAR TO TYPE ;TYPE CHAR IN A TYPE PUSH B ;SAVE PUSH D ; THE PUSH H ; ~bE0Fb<[^GnF D'VҨ oHq-8-S!P8'֚Nk~Xku֌/bE0FSb;+_CX0y+~SĊו DAAy"V 5&`.!۬郉G:s5{&>>kGn]!ŵUvQ%Vc锿 wbHqE _>bY]5XƉ*uPP&V,K8Q  5XƉx'S(ol8q<;ʝx=[qg+qO5U|vOܜX0pԁLH}a5Xy]:ސZGXS܉gvqNkXѳ'V]m D5_Xѳ'>>kﰓǷ`b;+_CX0p 2!Fħf5=l(IDUMP 2/15/77)!9"<1<:] \<\NO FILE$NO SUCH FILE$READ ERR$ ͔> ͔{0F>*_ =ͳ ڼ0Ôͪ> Ô=>FS *<:6:6͡ :7S]}Nlś<[#^ي FY: MQU*X5a"V$b٥xqO+1N:qϴ8zw#V]gz:ߡvܳӃ%bE0FVIX5~N.ie[{.u좪vщUvDO:0k؟ćAoQҨ2tdXt~>|}3wF a mounted disk. ECHO WAIT DELAYS The response to this inquiry should be two numbers between 0 and 100 separated by a comma. They determine how long your Osborne will wait for an echo from the other system before sending t#H` 3wF#Ae}ҙ;~X\et_\eUvQI:Cp|=e,ڎ G/ĊeYk$BGLL橡' NCp!pwC]#ww>':/z:mu{{x'>g7 :R!>@tC DW]۽BEVP߿3w=;ܿ}ćW t2 he next character in the send mode. The first number deterimes the wait after each character is sent. The second determines an additional wait for special characters returned but not sent at the end of a line. If reflections are not z}1Xy]:s߾Pߟ;+y1]tCwUw< QU-űe;qWZUwbfu5WC|ڪ;_being checked, the numbers affect only the timing of the sending, but not the checking. Some micro computer software is designed primarily to receive humanly typed input, and will "choke" on full speed input. In these cases the echo wait de(IDUMP 2/15/77)!9"<1<:] \<\*\"\|ͪ}#ͪ{{O͒ pr>.͔{e͒> ͔> ͔{0F>*_ =ͳ ڼ0Ôͪ> Ô=>FS *<:6:6͡ :7lays should be increased up to the point that the system does not jam up. All characters are sent from a file even if their echo's are not captured on the screen. Thus one can send a file with a 0,0 echo wait delay to a large scale system with a    fast front end processor and have it arrive correctly in spite of the file appearing incorrectly on your screen. What appears on the screen are the echos. If you want the file to appear correctly, increase the delays. The numbers 0,7 work well for a Honeywell front end processor. 3,5 makes the echos appear smoothly and they can be ckecked. Without a special receiving program, a microcomputer may not be able to receive full speed input. The checking option should"1 FILE v13 02/13/83 Control-C to abort :]  You must specify the file(s) you want to find. Wildcards are ok. EXAMPLE: FILE MODEM7.DOC FILE MOD*.* FILE *.ASM  FILE *.* :222G>"22>2*""!">2O}:<22\:_  ʟŸ ++ ABORTED ++ \ʿ1ʿ1ï:<2G:j:2 :W:++ FILE NOT FOUND ++ *":2O:2227o&))))) K> Ͷ:@Ͷ b >1Ͷ0Ͷ>:Ͷ> ͶͶs>.ͶͶƒ:=ʟ2ͯ>2>2> Ͷ> Ͷ> Ͷ> _~Ͷ#~  TOPIC : FILE.COM FROM : IRV HOFF DATE : 13 FEB 83 NOTE: ORIGINAL NAME WAS 'FILE'. RENAMED EARLY 1981 TO 'FILEFIND' BY SOMEONE OTHER THAN ORIGINAL AUTHOR. NOW CORRECTLY NAMED 'FILE'. This program finds a requested file on any/all disk drives and any user area allowed by the system. Just say: A>FILE NAME*.* and it will find any file commencing with 'NAME' on any disk drive and any user area. It doesn't matter what user area or drive you are in when you start, it commences at A0: This takes the place of things like: A>DIR NAME*.* $U0AD, or A>DIR NAME $AD, etc. (Those commands normally commence at whatever drive you are already on. If starting from D3, you must reset to A0: before commencing the search or it will skip the A: B: and C: dives com- pletely. 'FILE' starts at A0: regardless, making it very convenient to use.) It is an universal program that adapts equally well to CBBS, RBBS, DATATECH, OXGATE and other similar RCPM svFILE.ASMU ! "$#&%'()*+o,-/.0132465879;:<=>@?ABCEDFGystems. It is easy to use and gives all users on all systems a common command. (You can also get the entire directory of all drives and all avail- able user areas by saying: A>FILE *.* - Irv Hoff HJIKLMNQOPSRTs_ů/Vks9xY9SoĪj*aKϢ-(lռY\ԿlAszAVV_lM)@>:Yˆ(s9xe;P>q\S|s (Wը;  H9xUS,Ce`@%PEog*[ 5lQ֝HeU{sAt?.~W]AP?Ň9xG%OQms9siGXP;W~q}߹Z:׀9|^ԣgQ@R5C8 FcrV-sʫ BgE-k8 tTg G9I`G@0Pپ/S|^.]շEϞ_qcrVT^H3G={2Uo9x؁ ۝lQ<={eŐTzLΊʛgQߞe(7[zte(`}^yugE7,yLspOJ+4|r;}lqs9 s9bѿl sA` ,qsdX}cݟs,C? ۻ`ڸJ2\sBb`9UQ٢` Ty Eh&ߛO_}Oz!,C[9xRme;Ч5#[-z ?/s gv\,CUom-k={!\hgQU*[Wߓ^f~k)WXlQgU纞=}BH͖b\ysD5t5W^e.Ԡ5Ǻk`s9x=7IwS0~\b0B,2yCǹ0|WKpV)xߧJ|6/ݏFUv>_0Sr[ԣjx?sK )~oF<{gl=BU?ͱu G9oa'[PY 9xw7$/0APqR>Yپ09x5.Ԡ맨fDęz*0ZPy( {w-k/[A:+^c9dX29T^o-@^cT]Bs&۸Rnɵw UKT%sZdXBm\{P-窺âm\`~el߃C&۸gLAS ap;&۸LASwVv>6PT90\EtgKykc6.T[\1tgKyk=JS|^K8%nU [>>] A}{-k@Ϛgk,lQ<8j\.{IҎٰ9xݏ_JK=+'Nɥ[}[⯰e^Rw [Vd~6lAUge ۿY[{P=޳';ϻk)|^.to= [̥䬨~-g[uwzLq3GgIA,CTEwo|qo&7TEA0Ζ$6.U)5[] ArޚHo; ,}}!>@5ޖB0m\`{k&B!rޚBS1JsU5I!}LqfrEZ li9o! m\`WI&K2~65?ϑ#CB/sd=/Ln)0Z<{gL. [U~\K(lY3a3>ʫl-=ˀma+L*jԣ$lgxvų/.\^٢!;+끪/9xHت=+^ЉÖA} rI؞Ί9xΘGgI19+zE|GgIآ<{g̣o5GzEǖ-Eoa~=oqꍑʴRT^6g3GNorGQ)Ѫj͑SQr) _͑qI&,)(!֪vy?._-N%_nkk}lfmqn{{Խgҷ75w7Gܵ7-QGݏQ_#[4GVMs;y.0~\=gXٯ9j{wqqQ>25>GVMs.n?.#dk}l]~\GXnݏ#ie%ؖ5H|989|a&[gnQnQA,kԇ9iZ#[t=@zAVR2BuT{(<2}[olݵ:G;-| ۇݏ-p6G/ʥLn_W(5zW(-cΑ%lo?.޺?義Eb}s9`B0٢IR\A&[hB!E_֛#[wΑN}9|Q.dECeUB!t1G;L~/zزbhlt}A\#PùF5#%eTȖHϑ-#["=G[&7e}^٢59Q͈bIՇ9erjFK*d~yolѻsd'}#[T9U?G ?L!Ռ(TTAWق|t ZX&>:Vybl`@sd }29}A APCjP}{m&ئ7Bz IݏQ̑e%PH&oY,ʖEtl9K!le4%Ռ(TTA] Asd{#[Z٢wMٟ+$7GyΑs)erB!eŐԳ;#[g>:-,(AP}_uBj\clA~jasd'd]VR29D%kU#[t=x^]B*lE h9}g zԳWsd y'5z Isd'BSBf$sdkMϲYsd i)Mneʫzl™KY1+[tν F!+~lћO_}Oz!_xj>΅Z:( - }zVeAosU6;#[8[)GzR!Ģ?G;}5ꃿ zYz9|QQ&?{}UXZ:׀89ٻ[Ξb]OjOf'[́Ok\ ʖ 9wIJgU=*=|-gb򒟽U{-VWҹt1٢IG_a@!/3a˞}>auul5RϑeBLߒX-9߹Z:׀-QX-s9߹ڷK!VU{|V`u!~k)]O~?.|2j\xnosق2Yfr)*BZ:רg~d> -zɅLWZj\clw.-A9Eml/_g.l^ѣs #[g ,],?G ?LRoMuBj\_yolA~Z ,kгkx|/Ur1o>RdO-,CHU^^jTkϑ-'7drq[vl([^SŪ}+P#[̑-GǠerc8jaW(' er)*.ԠʫfDdl/#/A}O2_-998L]&7t?.GQyI>GNq-*ۓ(~6wS%X*fȻ[8kt?.GQ%A=6sdn9{'݀ ǰEݏ #[8}qsdkMɽwT^ݏ~:*#[hl:y+nz mQݏ9uQ[f=o &2(̑%=|lRA] Asd{"z l:} tz#[?GzȒΥjdrΒ'lϪVe๘#[yΑsd=/LN(*[p@`l)d>,wVԣs9H0*dsyw n꽳b>q0٢wG_}ZCE 1G;1䏉ǤG,En{gIuBO_K٢wG\o?j,۷7>3yp['#h,&ÿFe2bH #[2L~ Rz* ۏgzo(̑-~ssdsL2GgIeBc>lo?:Sd !-jҹ~{\u g}2U^?sV?&7ҹF||9drרlQA] Asd>Wq>=̑e eo(I_\&gŐԋWوsd1҃LN7}sd{y]yΛ#[l.nᆐzRo-@ߒWȖB.[RUy989|C U}~.ZՏ- C dker͈bILeŐ4f U5#%T gAPCj+$iL *d*.Ԡ9Uw z ׳w?.zc0LkeGpwՌ(TTA] As,]1Z5q|1tQY6z]O~ X}s9}au+fnYR٢q> ,vl52T脝&[&.3d\!5 [P`0Z5q͗gY Ĵ$-Q3Ԃ뷖 (lo3&T*mT;wQL&qwƶLK7[K -(ػs9>U.URpڨ=lh [=4Fl-$n>#Xv{]<=:K*7}PyE(z+̑-R#[dr,>}-A_9(jJul/W&oY,?wVo ٢7csdsLnx*[Ԍ5WQT~\ɋ9Eדo&_U(|U~\ɋ9B0:i,E9߹ZMΑuQz #[gZܣ+s1_lQj?G/J4}lA~Zsds)7<=:K*7}PyE(z+̑-~ܾowSپw?.zcΑ-Oo< c˚bl)d>>Mnd'}~.9T?bH %T?К#[9٢4G;1#[t=n#[̑-wsOcEדoylw.c2Gz5g;׳?&s9cc!>}-AW٢-x.c#[j&RHQ>h|h  ykgg^g &Tw3mW0 S4~՝8 g;=xX"ŧ kt03:جߡʯ`BEtLLCb$>߷5hɯ`&:ɖFX>+18 D5_Xѳ'>>kﰓǷ`b;+_CX0p 2!Fħf5=lt of 5 is used. ; ;--------------------------------------------------- ; ; EQUATES SECTION ; BDOS EQU 05H COMBUF EQU 80H CONINCH EQU 01H CONSTAT EQU 0BH CR EQU 0DH FCB1 EQU 5CH FCB2 EQU 6CH FF EQU 0CH LF EQU 0AH OPNFIL EQU 0FH OUTSTR EQU 09; ; *READS FILE INTO LARGE BUFFER ( >48K ) ; TO REDUCE WEAR ON DRIVES ; ; *SENDS FORM FEED TO PRINTER AT END OF ; FILE, NOT BEGINNING ; ; *"More...." MESSAGE STARTS ONLY AFTER THE ; FIRST SCREENFULL AND IS ALWAYS ERASED ; ; *CONSOLE IS DEFAULTH READSEQ EQU 14H WARMST EQU 00H ;-------------------------------------------------- ; ; MAINLINE SECTION ; ORG 0100H ;SAVE OLD STACK POINTER AND SET NEW STACK POINTER LXI H,0 DAD SP SHLD OLDSTK LXI SP,NEWSTK ;CALL INITIALIZATION SUB, O. TO LIST ON PRINTER ; YOU MUST TYPE P (SAVES A LOT OF PAPER) ; ; *SUPPORTS LEFT MARGIN OF 0-9 SPACES IN ; PRINTER MODE. DEFAULT IS 5 SPACES. ; ; *2 LINE HEADER MODIFIED TO PUT FILE NAME IN ; TOP LINE AND LEAVE 2ND LINE BLANK. ; ; *LINES/PAGE RPEN FILE, DO PAGE HEADER CALL INIT CALL OPNFILE CALL NXTPAGE ; ; MAIN LOOP OF PROGRAM MAINLP: CALL READCHR ;READ CHAR. FROM FILE BUFFER CALL WRITCHR ;WRITE CHAR. ON SELECTED DEVICE CALL CONCHK ;CHECK CONSOLE STATUS JC EXIT ;EXIT IF ^C WASEDUCED TO 57 FOR BETTER ; BOTTOM MARGIN. ; ; USAGE ; ----- ; ; LIST3 Describes LIST3 on console ; LIST3 x:filename ext Displays file on console ; LIST3 x:filename.ext Pn Prints file, n space margin ; ; Where x: is optional drive specvLIST3.ASMZ  "!#%$&('*),+.-/021345768:9;o<=>?B@ACDEification ; filename.ext is any standard CP/M filename ; (wildcard ? or * selects first match) ; n is a digit 0,...,9 controls number of added ; spaces in left margin. If not specified, or ; out-of-bounds, a defaulFGIHJKLMNOPQRSTVUYWXu/hDy(MXYsL;4{o-?Խ f{A1-FKO&2Խ keYϏi!MsULO&Y'!cZu/h4iǴ{ E  4wA~ rr.^ӎi ^6ũu2Z *w|LNs^͹ƴc h s !'ɸ|_izפHc1AKvm&euĒ˲_u%67/Y+ :_ wӎi5|{V1A>^p~< 8's 8u͹pQkHnvL8>BM-(/kIZuܞ i'(N9A>4M{ZùɇzWMcڃy\ПKLgGLUQw\Z1Z3[TQw\oO ǘQW=ƌu4u(;.M38eLKN55ʻ_/rL΂)%VvAZӒSiǴ,_w[&\9 (_1޸4toɕ1ZŘ#,( dPћ˷KO|{V^p=iL; PK4y}2!)л&-iyԼ%ziL; ~Zz\#Ϟ#?Hdi%~185rL vLP @%MZ;'5)%AI j nƴ{ EQmi mhs#a@%IAM-Pܶ(I(ݶiQpʁ6Lmn$A H m R(قZhGv2 N9Yd] #|$DjL;]g FBo..(ZǴcכ˪(;:ۯ7cFF1;(\&l1cIr2;J3ueYWSN~p` z˦1Sƴ$TcuO/dVa ?̵sEiߙO>Y?eDo &dVE\Z1%QӎiY?eDo *,5Kx?~ML Vڵ*8)RMB'Jn^;֥ jQsrD%mi m67I-H -HkѮ=%8m#mAmL h8mZvAAm5B8pj@-1-[N hv"6nQtR (E{7z(قZH!hG @JI5ۨ99pjke1-ԃzBJ$j=-^Ի% 'iZqG,Әv6TyG)Kx(_1f(G$qKiǴ(sk$5?1\Z*_DgjZ~pk$gLWM+[C9e _Rx_LWM+[C9%QӎiY?e˝ /T{}+8gp iu/\pn~wM&s-,•1mKgCqj ۛ\(/5z?LcZ;{| {øCPP֞iL;%Q8"՞Wraeߘv ͘ũ#՞*r3foD=Ҍ[r%Rs3ȾS%RnfL Hg7cj roƬ:RیwT{Y7cSp3-k~Hgf3rI3fLKN5Ӣ+ƴcg#.dr3]לc8~~΂)%8 i{WE7rۛpnRdԻ+|3u.ycp^o3]#[5֧-cF%h:=Sd\9]8~<˽ ƈO!0fvMؕ_^\9עIoQƌJi c3[?3JNs^RoQbK?%Xz|~|} d֊dXq2[+۲oݮWXgAwMFnj~kĘow35QkdiǴ(~o9fy*58 l_B(Nnj~k g[lXYKz4cFF7a{kbɕs=%l`k.#XQ'9&q _5=4ݯ4ƴC/̟QZH?e\1?8w@s2N>-sk$_ƌJV{P njTOxׇ3VS}?y,b3w=_ up\#ט#1C5Sְ[:Cqj }:fTOz: }1C<^F ^+|Sϫ44Y&JAKgz1c u5,NZU>tџp tџ;11c5Շ.3*q/S[Εx[;f  v͘oQƌJũu\)8~ (N䲌>tqO55qGB>4ް6Շ.ۛПwMcFq&ldVȇk7o1C5^:EzMcFm]O=:OnjeX#ypo1%h~:ПKL?f(>א\"1R{U[k52^h_k &[+y1ZF}/ k8r˹sbcD<87;ZVr g- K|SnQ?Tv//`ZAs5#4|$rK3ZV-3]#[5G u%:gOw1c5Շ.'aSd?Is3jS}?>;gO MB(N ߉ф|?‘'˄>_sa%yi,풼P8F.?7lӎ[zêJн9|\]d?Xa9|N,ݝ NSrrVr gkRJgcs+c8r5)=zs4f[kp^(ewE2FQs_c:wPWK2ȭ`/]қƌ7q z;?`?tӘfPVBv(}cF3o ǘ;GsOp3k#l _2K .ɋq\iO3Л؏ lgb Fo.ƌv8R7cF?v( +3OnQl3Ojo8x_h(OjoxL5z u.çy$F<~cqr3qjMvw4cF?vn5i7 E8XzcFq2l֕Mvw Oƌ~p3kn ֊ߘKoX?XaOp~r%yP,ǴcZi.?4 ?_ˠaEk1TEiqi735yKox8r3>hMr3f[k8pX2E݌2%QӎiY?eDyOq:n5l7=~Ye?1i,/e? [(/ 3oczw"e>AyO .#,55fVB6J+GQs}c Q1-:՘vL΂)%)aV>˷Kn~g 4گ@cYڗ[P@i[% gh8>B&T{ ZǴ=[+4 \~h=iL;fR{*9ʰ,oh%~'cq&v]s7MKnwSrIgUcG簒K?_} K17nX;S057M|2f,OO9N4;S0?Xcby?7cJ.ZQuX_7M0~kӾ/?>ͻC셕'c~ +Q՘v?֯4iUq"$18W~(9aSЛ&ӧyTEii7î/u+ƌroN$1GciIԩƴcuO/wMoApnJ[&~^3V>PZHl k}1xzT%ПQKL?f(>א\uߨev/_5zuD1~Tяn1lq9!%5rL n6炛D/dHd)cuO/R}F.HG}WP˘VFo(OGxgY$krHLcs}حq\#Za|ȇ\j?f:l֕)p1w4t/1c?2~'%??Xa9|N,ӻڕ}.1wxZ%lC{εƌ~kcF?vn&;gkZ1wx2ײ_2׺FzϹ֘%lcCciIԩƴcuO/۲oݮW~ƴO Q&2׺Fbkp=7Ǵ+e~͖$>i,]ƴ'(O4y}iL;~[TQ Gfp,|\2fsF z  ?p\#njJũu5RPZ'F, {\#3:yXrCz\c]לh5rнpq%%e˘яJ(nwM[&>á#:3]꼋~^:Cu/3C3]꼋3{AKX#.KЛ&| 1;2loC!I\cnJAo(14{ae '(OWнr*v&%ݙzE(ݠvm u .& N l PC[;LWM+)mBhю`'R(قZkSpj֞I9f":UPiI)iǴ,_"?*4 $!\ƴk>q4 '(OӘv|Fqj\dz1;f(>8*偭q~J2ײ_ieu35)K{4fkszƌ~Hn%lo7Q8g>P$PlY+cb7[A2f(Q~嘱MN3' 4wnj%7F>%ec?Ә5nwDqj|1;[kכapOſqʘ#[&q 8߅1w4t9.4仒(skoOYF-cy4︴aW> cF?7njT5? &;?áᘡ\}_)ΙzĻeyǥ&e<(oXrnj|_U.)%y؏M:t/p$y̸o#u+a]?m4Ql3C edwX9f(Fp 5֧9nj%>l֕X92nj4&?I3#K<ǘv NӒSiǴ,_ )) >W}_i^b_wz̵c1}λPUO\q$yP,-a#֯%qʘ>W}|ieuR  ɭ[uR rE([@v@FB8pr'R%yETM+Z-99e;h5e;( _))Xgɮxg ϛƴcS*9.]5RЛcw`)'?l\^hR3#F6JSSe8D3f[kSz1ffP,,a#ldWZ)@1-:՘vL΂)%&HdYhwE2ƴqW8hzKLc1&HU%(h-덭zO>1ZgN?s9 ~[ƌ~k]dwG3njJQd%5۵)( ԜZ;U%[A;JhNn@H6'VA9f"AvNmtgjZ ( _M(I(ݶtg1Q5V@@)!3|JVڠ@I};jmp䶍6'xgY$k]iL;fϜ,  ҼJ2~[෱qW18W>MzƕmNml3q>c~~g*’ݤ1fIװM~9fnb؏ݯ෱[D]}(®]෱[3{dW4lssܰ.~'cFQ {>QQ83oa9|@S9fs}r38eLKN5Ӯ~ ;AND SEND IT RET PTR: MVI A,FF ;SEND A FORM FEED CALL OUTCHR RET ;--------------------------------------------------- ; ;SUBROUTINE NXTPAGE: HANDLES PAGING FOR BOTH ;PRINTER AND CONSOLE MODE, AND PRINTS PAGE HEADER ;IN PRINTER MODE ; NXTPAGE] G=Q &8oiPǴcVUQ~s 9ᷱ3Q]uFG35ƌ^QMvwϨy~\\}vk/PIW]949,vw,lP/GECNT ;BOTH MODES. INC PAGE COUNT INX H SHLD PAGECNT XRA A ;ZERO LINE AND CHAR. COUNT STA LINECNT STA CHRCNT RET MORMESS:DB CR,LF,'More....',0 MORERAS:DB CR,' ',CR,0 ;------------------------------------------------- ; ;SUBROUTIu$^E,/Uk/BIV^5П ؚg5кleLqE]WCrz`ec_A&InrdszXr/;&ktƒ,N#՞pԅʑ-o Urjp\#QyӘوz:9|zDqjyǴ$.cF>aHuR ( nׂha L;fϜ,v-Q.ASM3 o !"#%$'&)(*,+-/.012lD `az_Hwj٨uAST PRINTER FLAG ORA A JNZ PTR ;JUMP IF PRINTER MODE CON: LXI H,MORMESS;LOAD THE "MORE" MESSAGE CALL OUTSTRG ;AND SEND IT. CALL INCHAR ;WAIT FOR KEYBOARD INPUT JC EXIT ;EXIT IF IT WAS ^C LXI H,MORERAS ;LOAD THE ERASE-MORE MESSAGE CALL OUTSTRG,OI%puPk!Q$a*a^f z"*a^[W8_Jll:5jG0*0kwq8Jfa*)ǀyN0G s<*030K-0N0KMdG ^0'1GG03!#3;z8  uœ!E#ljݿlf"I?X06S0ouEe c!GA_!_)( ;afS'aZ aIG ^0'00K-0da[Mzk::&R#x cWFWuL%UoARN_y+*# a,AתV_eM-F7OG%̅ateI~ER POINTER MVI A,0FFH ;TURN OFF LEADING ZERO FLAG STA LZFLAG ;AND RETURN RET ;-------------------------------------------------- ; ; DATA STORAGE SECTION ; HEADER: DB ' Listing of File: ' NAMBUF DB ' ' DB ' ^v*ނM-VWTvBK?lZ9 .'ת*_*0d?lJة0[ MDd6҄'?lAa fh8O?l?!0    :nBp cue_@ݝ_®ҕ_V%6kUZתO*aes_I% SS 5 DISK.DOC FOG/UTL.036 First Osborne Group (FOG) Utilities Disk FILE is an updated version of FILEFIND found on FOG/UTL.016. It will search all drives and users to find files satisfying a command *#H*1Wc_-O*Q_ pH$uZkD_ ;T0b2+;~R FWu? _zkjGso'&)(*,+-/.012lD `az_Hwj٨uAline specification. Place FILE.COM in drive A. At the A> prompt, type FILE filespec where filespec is of the form filename.typ and may include wildcards. Refer to FILE.DOC. PRINTSQ may be used to print a squeezed file without first unsqDAD BY MOV H,D ;RESTORING HL FROM DE POP D ;RESTORE D AND RETURN RET ;-------------------------------------------------- ; ;SUBROUTINE LDZERO: REPLACE LEADING ZERO WITH BLANK ; LDZERO: MOV B,A ;SAVE DIGIT IN B LDA LZFLAG ;LOAD LEADING ZERO FLAueezing it. A squeezed file is indicated by the presence of a Q as the second character in filetype (e.g., FILE.AQM). Place PRINTSQ.COM in drive A. At the A> prompt, type PRINTSQ d:filename.tQp where filename.tQp on (optional) drive d: is tG CMP B ;CHECK FOR LEADING ZERO JNZ NOTLD0 ;IF NOT JUMP MVI A,' ' ;IF SO, STORE BLANK INSTEAD STAX D ;OF DIGIT IT PAGE NUMBER INX D ;INC. PAGE NUMBER POINTER RET NOTLD0: MOV A,B ;NOT LEAD. 0. GET DIGIT STAX D ;STORE IT INX D ;INC PAGE NUMBhe squeezed file to be printed. Make sure the printer is turned on. UNERA15 is an update of UNERA found on FOG/UTL.009. It will recover files which have been previously ERAsed. Place UNERA15.COM in drive A. At the A> prompt, type UNE  RA15 d:filename.typ where filename.typ is the file on (optional) drive d: to be recovered. Wildcards may not be used. See UNERA15.DOC for further information. FILE, PRINTSQ, and UNERA15 were contributed by Byron McKay. The remaining files wereq5 2\ .:]83> !]4 ;[{ O> :\@e O>  [>^@:gG> u_\gH:!2i:] ?:mP:n0:02g!] y>.~# >2>2>2f received from Detroit's DeFOG. IDUMP will display a file in hex and ASCII. Place IDUMP.COM in drive A. At the A> prompt, type IDUMP d:filename.typ where filename.typ is the file on (optional) drive d to be dumped. Also, see the CP/M DUMH List - will list a source text file in ascii form (or compressed ascii) from a file to either the printer or console. The 1st argument is the source filename. The 2nd argument may be: " " = list to console. or "P utility and DUMP found on FOG/UTL.006. Q will display memory in hex and ASCII. Place Q.COM in drive A. At the A> prompt, type Q @hhhh where hhhh is a four digit hex address identifying the start of memory to be dumped. Use to Pn" = list to printer. where n = 0,1...9 is the number of left margin spaces desired. $:fu!ͷ:'!ͷ> :fʑ*^L!ͷ*^#"^2]2\ More.... ~#÷}0>02h>0]T< =kbG:h> x> pause or restart, as the dump will continue scrolling onto the screen until is pressed. LIST3 is an update of LIST found on FOG/UTL.002. Place LIST.COM in drive A. At the A> prompt, enter one of the following commands. To display a f2h Listing of File: Page 123 0'!ͷ> :fʑ*^L!ͷ*^#"^2]2\ More.... ~#÷}0>02h>0]T< =kbG:h> x>!9"b1͛͊{3'> > *b> 7?P , SOME KIND OF ERROR $FILE NOT FOUND $:j"!\ʲE*X"X:iʷÃ>2j*X+"X!"T*X|x*T~"#"T*X+"X!\4 :f~;,!Ù!;qz8O! !;,z;qyO! ͣͣW_͕qyO! ͣ͒qy  -3 2 >Ai 1J I2!  >m I 1!y  >m KI: AO>/Gͭ ͗q ͗II1K Wz1 ͒/:ҹ ͗:͗/͒!~w:<I GE BUFFER (over 48K on Osborne 1) TO REDUCE WEAR ON DRIVES *"More...." MESSAGE STARTS ONLY AFTER THE FIRST SCREENFULL AND IS ALWAYS ERASED *CONSOLE IS DEFAULT. TO LIST ON PRINTER YOU MUST TYPE P (SAVES A LOT OF PAPER) *SENDS FORM FEED KI >m I1 ͗Iê1!~>w2:AUIIjJ IB ͗I1>: m :!wI07HWgtA1A@P\d5bEHyed"BA1PYTAE(('@ @@TO PRINTER AT END OF FILE, NOT BEGINNING *SUPPORTS LEFT MARGIN OF 0-9 SPACES IN PRINTER MODE. DEFAULT IS 5 SPACES. *2 LINE HEADER MODIFIED TO PUT FILE NAME IN TOP LINE AND LEAVE 2ND LINE BLANK. *LINES/PAGE REDUCED TO 57 FOR BETTER  LIST3.DOC by John M. Steele THIS PROGRAM IS BASED ON LIST.COM WHICH IS FOUND ON -FOG/UTL.002. LIST.COM WAS DISASSEMBLED AND THE RESULTANT PSUED0-SOURCE CODE MODIFIED TO PRODUCE LIST3.ASM. LIST3.CO i verBOTTOM MARGIN. USAGE ----- LIST3 Describes LIST3 on console LIST3 x:filename ext Displays file on console LIST3 x:filename.ext Pn Prints file, n space margin Where x: is optional drive specification filename.ext is any standard CPsatil fil listin progra whic wil lis a asci fil o eithe th consol scree o th printe a th user' option I ha specia feature suc a zeroin th hig orde bi t suppor Wordsta files expansio o tab t /M filename (wildcard ? or * selects first match) n is a digit 0,...,9 controls number of added spaces in left margin. If not specified, or out-of-bounds, a default of 5 is used. multiple o eigh columns re-expansio o th $7 :)%*T*ʤ>*9.l#>.92-•#ʍ.>-9>22O>2ì\7 %2ô> 2 #ʳ,>2ó!q.>2 # !q^!q-   ʹn\̀\ͅ:2>2!: 6w: 2* >w:`R:`~#A͊<>`͙ _\\   M B - S A V E Version 1.10 for MBASIC 5.21 onC:Bw:B*SC^#V"BG:B:*SC:B@*QC~͍A"BG*SCB@+"B*QC>SCͤAN͞)"B>̓Ap͢DMW"B*B͢DM*B\*QC*B wF)͟*QC*Bs#r͛**QCN#F`ixʸ ʸ< O*SC͞)|W"q͟F)͟**QCs#r#6 Osborne 1 (c) 1983 by John M. Steele donated to FOG, its chapters, and memebers for non-commercial use only *R E L A X and read this. If your program is still in memory, MB-SAVE will recover it for you. *Be sure there is room for yourLS(F#~  OW*QCs#r~# &*B~2B*B#"Bs s :B\:B:BTH:BRH!LC6s ,͓"HCs*B~,·s ͓"JC>HCͤAs>2!B!B62:B2BB*BM*B\!B"B:B=2 file on the drive you specified (or default). You can load a disk now if you are not sure. MB-SAVE will reset the drives before proceeding. NOTE: The disk must be formatted--no miracles done here. <<<<<< HIT ANY KEY TO BEGIN >>>>>> B*B#"B!Bs+q!B6:B2B*B"B:B*B:BH:BHr:B l*BN$):B<2BO!B Hq&:B*B~ HҒs!"B!B6:B!B*B&B >9~0H*B!B+A*B&B >_"B!B4ž*B:B2B*B"B**M $drives before proceeding. NOTE: The disk must be formatted--no miracles done here. <<<<<< HIT ANY KEY TO BEGIN >>>>>> *.|g"fA xtaaxa{ah *f.V*f.>w*f.|w*fw# xV 4SUBM MENUg$G$ Loading MBASIC MENU $YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:B#*B&*BN:B!0*B&*BN!B6*B&*B:B!Bq!"B:B‰͔*t*HmSS(*SC^#V"B*QC*SCN#Fq#pF)͍*ҖSS(*SCN#FͰ!BͯA*SCN#FͬHF)͟*QC>w#6͛**QC*SCN#FͰ*B̓A!BsͲA:B:B<*QCw*QaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKWWWWWWWWWWWWWWWWWWWWIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKWWWWWWZaaaaaaaaaaVWWWWWWIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVWWWWWWWWWWWWWWWWWWWWZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa$aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaile on the screen, type LIST3 filespec To display a file on the printer, type LIST3 filespec Pn For filespec, substitute d:filename.typ where d: is an optional drive specifier; if wildcards are used in filename.typ, the first matching faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaailename will be selected. Following P to indicate printer output, enter a single digit from 0 to 9 to specify how many spaces to add on the left margin; if n is invalid or not included, 5 spaces will be used. See LIST3.DOC for further details. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa MB-SAVE and WS-SAVE were inspired by the Baldwin and Lopez article on pp. 74 and 75 of the April/May 1983 Portable Companion. MB-SAVE may be used to recover an MBASIC program which was not SAVEd before terminating MBASIC; similarly, WS-SAVE wilaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVWWWWWWIaaaaaaaaaaKWWWWWWZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal recover a WordStar file lost by not using S or D. These programs will even be successful following , so long as the AC power has not been interrupted; however, they should be used immediately, without any significant int!  ervening program activity. To recover a file, place the appropriate xx-SAVE.COM in drive A. At the A> prompt, type xx-SAVE d:filename.typ where xx is MB or WS and filename.typ specifies the file on (optional) drive d to receive the recover QWIKKEY will permit definition of up to 16 additional special function keys using any key on the keyboard. Each definition may contain up to 30 characters of any type. The definitions will remain valid until a cold boot or until certain progred text. SAVE.DOC provides additional information; only part of the DOC file is present, however. MBASAUTO.COM may be substituted for AUTOST.COM to automatically log drive B for your program files before starting MBASIC on drive A. Give AUTOSTams are executed; QWIKKEY.DOC indicates that WordStar is one program that will upset QWIKKEY, but actually it seems to work properly. Place QWIKKEY.COM in drive A. At the A> prompt, type QWIKKEY The program will request a key to be defined.COM on your MBASIC system disk some other name to avoid erasing it. Then PIP MBASAUTO.COM to your MBASIC disk and rename it AUTOST.COM; similarly, PIP the CP/M utility SUBMIT.COM to your MBASIC disk and rename it SUBM.COM. Use WordStar in the  as an "attention" character (e.g., \). Whenever the attention character is pressed, QWIKKEY will prompt for a function key and then for the definition of that key (i.e., characters to be substituted whenever the function key is pressed). Non- document mode to create a text file named MENU.SUB with the following two lines starting in column one B: A:MBASIC program where program is the name of a BAS file you wish to have executed when MBASIC begins, if any. Place the res WRINST was inspired by an article in the Feb/Mar 1983 issue of Portable Companion. It will take text prepared using WordStar, add line numbers and PRINT statements, and build an MBASIC program to reproduce the text on the screen. The resultingulting MBASIC system disk in drive A and your program files in drive B. A cold boot (or ) will cause drive B to be logged as the default drive, start MBASIC on drive A, then begin executing program.BAS (if defined) found on drive B. program may be merged into your own program or run by itself. To use, place WRINST.BAS in drive A and MBASIC.COM in drive B. At the A> prompt, type B:MBASIC WRINST The program will ask for the filename containing the text of interest. It"   will build the MBASIC program on a file called TEMP.DOC. See WRINST.DOC for further information. Squeezed assembly language AQM files may be unsqueezed using utilities found on FOG/UTL.003, 004, 014, and 031. Jim WoolleyV" E!"E*QCE͗A84*SC^#V* E6A+s#r*E"E 4F)a@*QCN#F+q#pa@*QCYA+s#ra@*SC*QCA+s#rF)a@*SC*QCnA+s#rF)a@=*a@, *F)a@F)a@V)*a@$*a@,F)F)a@+Oͩ*a@Oͩ*a@*SC*QC^#VN#FͧOͩ*a@*QCMA+s#ra@*UC#"UCV)*U FOG Disk Librarian January 1984 uage AQM files may be unsqueezed using utilities found on FOG/UTL.003, 004, 014, and 031. Jim WoolleyC*QCN#Fq#p*UC#"UCa@*SCDMu)*SC^#V" E*QC* EN#Fq#pF)F)a@,F)F)a@V)>)*QC*UCs#r*UCn&"UC͛*a@*QCN#Fͬ҇5͟F)ñ5*SCN#FͬҠ5$*͟F)ñ5*SC*QC^#VN#Fͺa@>)*UC#:C<2CO!aC q#p*UC^#V"UCa@*C&aC) ^#V"UC:C=2C5GR(!9"l1l:]@ʫ*%2͜͜!2`$%"*l|L}L=> _UƐ'@'?~L}<=}<=#}aͦ~ ڍڏ>.?#}‚ͦ> ?> ?>|?^! ))))A0oñ2`-|- - -a@{+a@J,a@͒/6ͣ/?1a@-DM_.F)a@ .DM_.: >6͟F)a@*QCN#F F)*QCN#F@F)ͱ.a@*QCN#F F)ͱ.a@͒/҄6V)ͣ/Ç6ͳ(a@*SC*QC^N͏F)F)a@!D6?1a@!D60a@-DM&F)a@ .DM: 6͟F)a@!E6:E<2EO! >ͯA66 $<~ ڍڏ>.?#}‚ͦ> ?> ?>|?^! ))))A0oñ2`-|- - -*SCN#F*E&i*QCN#F͟F)F)a@V)>)*UCN#F*QCi>)a@*]C+"Ca@*QC>wa@͒/]7ͣ/0a@*QC^#V"EDMd)/>EͤAHҏ7*EDMa@a@͚(a@: 7!E6:E<2EO!& D͗A7ç7*E&&) D͙A7͚(7*E&&) N#F=.a@͹-a@g*8͹-SCDM1*QCDM*SCDMI*SCDMz*F)a@*QC*SC@s#rF)a@*SC*QC͙A+s#rF)a@h@*SC*QC^#VN#F8A+s#rF):E҆3*QCYA#+s#ra@h@g*ҥ3ZD(*SCq#pü3*SC*QCN#F^#VA+s#rF):E3*QCYA#+s#ra@g*3*SC>w#684͍*3*SC>w#684*SC^# 8*UC##"UCF)a@ͥ-a@͒-a@*a@!D6*UC"D=/a@!D60a@!D6?1a@7a@;.ga@*QCN#FF)a@*QC>wa@*QCDM2a@͚V)*DMͭ y&K*QCDMIa@́*Ұ8*QCq#p8S*8*QC>w#68*QC>w#6a@*QCDMͪa@*QCDMa@*QCDM-a@V)**QCDM*S#   QWIKKEY V1.1 for CP/M-80 Copyright (c) 1983 by Tony Fleig QWIKKEY may be used for non-commercial purposes only. No commercial use of QWIKKEY may be made without the author's express written permission. $ '!~ W!$x ~#@ O1! C!3"!"!"!"O>:G:xʓ Enter attention chaacter: Key: = QWIKKEY Key definition table full. #ww> *.Fs#rPs#r$bx# {~#o}o33o:š*š#w#w# 8*".|g"@!9~#fo"C*"D* "*"K* " 22#  ^K - Error reading BIOS jump table.ermission. $ '!~ W!$x ~#!P" !F"f2 @"$ D$ B@$I $I$yC":>:G:xʓ!#"ʅ n*F#"~2x G!~ʿʿ ¨p#ww> O ^9Y9d99999:@:m:u::::: ;6;T;j;;;;;;T2>=>[>>>>>>?N?>)2!E6͍*҇@:E/2E*QCYA#+s#r͔*ҡ@:E/2E*SCYA#+s#rS*Ҽ@ZD(*SCq&i@*SCDM1*QCDMK*SCDMIF)*i`N#Fog_og_{ozgi@ O1!" C!3"!"!"!":O>:G:xʓ Enter attention character: Key: = QWIKKEY - Key definition table full.p#ww> O ^ Q W I K K E Y A Keyboard Redefinition Program V1.1 20-Sep-1983 Copyright (c) 1983 by Tony Fleig QWIKKE@ O1! C!3"!"!"!"O>:G:xʓ Enter attention chaacter: Key: = QWIKKEY Key definition table full.p#ww> O ^Y may be used for non-commercial purposes only. No commercial use of QWIKKEY may be made without the author's express written permission. QWIKKEY allows any key(s) on your keyboard to be replaced $   by a character string of your choosing. The string can be anything, but would most usefully be a frequently issued command. Keys may be defined at any time, even while you are running a program (except. To define a key, enter the attention character - QWIKKEY will prompt with: "Key:". At this point, press the key you wish to define (control keys are generally popular for redefinition). Afte WORDSTAR, in this version at least). Key definitions remain across warm boots, but are lost on cold boots; the utility is meant to be used on-the-fly, to define commands as you need them, rather than redefining a set ofr echoing the key entered, followed by "=", QWIKKEY will now wait for the definition. Definitions may contain any character including carriage returns, line feeds etc. (note that a carriage return is echoed as "^M"  keys for a particular program. Install QWIKKEY by running the QWIKKEY.COM program (e.g. A>QWIKKEY - this will have to be done after each cold boot). QWIKKEY will then prompt for an "attention" chand line feed as "^J") except ^Z. ^Z is used to terminate the definition. Example: A>Key: ^A = PIP A:=B:*.*[V]^M <--- ^Z here to end If you want to remove a definition, simply define a key to aracter. This is the character which will signal QWIKKEY that you wish to enter a new key definition. The best choice for this character is a character that is not used for any other purpose (commonly a control char be itself. There is a limit of 16 definitions of 30 characters each. QWIKKEY Page 2 This is version 1.1, and was really done just to see if the acter). QWIKKEY positions itself just below the CCP and intercepts all console input, looking for defined characters. After running QWIKKEY, no characters are defined, so your system should behave just as it did before concept was valid. It appears to work fine, with some drawbacks: XSUB thinks it's already loaded if QWIKKEY is installed, and therefore is unusable, WORDSTAR overwrites the CCP and everything below it as fa%  r as I can tell, wiping out QWIKKEY, and itself in the process. There must be other things that are broken by QWIKKEY V1.1 that I haven't discovered. For V2.0, I plan to include the ability to store key definitions in s all other copyrights. Th April/Ma issu o th Portabl Companio define procedur fo recover o los Wordsta o MBASIà file fro memor usin DDԠ an䠠 SAV commands Th procedure wor bu ma b difficul t reme a file and retrieve them at will, and the capability of handling keys that generate escape sequences, such as the alternate keypad mode of the DEC VT100 terminal. It also occurs to me that this same technique mbe o locat unde th pressur o th dreade䠠 BDOӠ ERROҠ o othe crisis Thes procedure hav bee reduce t program whic ca be kept on your disk and are easy to use. WS-SAVE.COM ----------- WS-SAVŠ save Wordstcould be applied to output as well as input, allowing a program to send, for example, escape sequences peculiar to the Lier-Siegler ADM-3A, but have the corresponding VT100 escape sequences delivered to the console terminal. a tex fro memor t specifie file Th algorith fo findin th end- of-tex i wea an ma resul i jun appende t th en o th fil whic yo wil hav t edi out bu thi i muc easie tha re-typin th text Not t My thanks to Gary Novosielski for the relocation technique used in version 3.0 of his UNSPOOL program. ha i lon document an tex beyon th startin locatio o th CC (a CF00 i th Osborn 1 wil b overwritte whe CP/͠ i re- loaded s som tex ma b missin a th en o the file. USAGE: 1 Th recommende .mt 0 SAVE.DOC (c) 1983 by John M. Steele, DEFOG NOTICE SAVE.DOC WS-SAVE.COM an MB-SAVE.CO hav bee donate t FO fo non-commercia distributio t it affiliate chapter an members Th autho retainprocedur i t plac cop o WS-SAVŠ o you Wordsta diskett befor th nee arises Th procedur belo assume tha WS-SAV i o th A driv an tha B ha bee logge a th defaul drive Othe arrangement wil wor i th dr&  ives are correctly specified. 2 Exi t CP/ an typ A:WS-SAVŠ x:filename.ex wher th x i a optiona driv specificatio (A o B: an filename.ex i th CP/͠ filenam yo woul lik you tex writte to Th specifie (o dearacte limi i arbitrar an ma b patche by the user. D Encounte th CCP WS-SAV calculate th beginnin o CP/ (specificall th CCP an stop th writ a thi address An tex abov thi addrefault destinatio driv mus hav roo fo th file However WS-SAV wil paus afte displayin it sign-o message A thi point yo ma loa anothe diskett o th destinatio drive WS-SAV wil rese th drive fo you Hi ans ha bee overwritte i re- loading CP/M before WS-SAVE is even called. 4 Reloa Wordstar cal u th fil i whic yo store you tex an chec i carefully edittin a required Not tha i ver lon files Wordsta ma ha ke t begi th fil recovery. 3 Fil recover wil b stoppe b an o fou conditions: A Use Input Th tex i displaye o th scree a i i writte t file I yo se WS-SAVŠ continu afte th en ov writte par o th tex t temporar fil .$$ extension an tha onl par o tex was in memory. USER PATCHES Th distribute versio o WS-SAV i correc onl fo Wordsta 2.26 Wordsta 2.2 start tex a memor vali text hi an ke t sto th proces an clos th file. B Encounte ^Z I savin file Wordsta fill th secto wit ^Z I yo ar edittin a ol file an hav no inserte to much t addres 7321h Othe version o Wordsta star tex a differen memor locations WS-SAV store th start-of-tex addres a 01D5 an 01D6h lo byt first Patc thi addres fo othe versions of Wordstar. I yo patcher ma b on o mor ^ a th en o text This will close the file. C Lon Line I WS-SAV encounter mor tha 12 character withou lin堠 feed i terminate th writ t file Th堠 12 ch th star addres above yo ma wis t patc th Wordsta versio numbe i th sign-on I i locate i fou contiguou byte startin a 0203h Pleas d no patc m copyrigh or distribution notice. Th lon lin limi o'   --> FILE: -FOG/UTL.036 CRC = 00 00 --> FILE: /UTL#036.DOC CRC = DD 62 --> FILE: FILE .AQM CRC = 59 86 --> FILE: FILE .COM CRC = 0C 1C --> FILE: FILE .DOC CRC = 4F 3C --> FILE: IDUMP .AQM CRC = FA C3 --> FILE: IDUMP .COM CRC = D5 14 --> FILE: LIST3 .AQM CRC = DB 72 --> FILE: LIST3 .COM CRC = A8 6E --> FILE: LIST3 .DOC CRC = 94 C1 --> FILE: MB-SAVE .COM CRC = 8A 24 --> FILE: MBASAUTO.COM CRC = E0 CB --> FILE: PRINTSQ .COM CRC = 30 86 --> FILE: Q .AQM CRC = 86 BB --> FILE: Q .COM CRC = 37 78 --> FILE: QWIKKEY .COM CRC = 5B 6D --> FILE: QWIKKEY .DOC CRC = A5 43 --> FILE: SAVE .DOC CRC = BB B2 --> FILE: UNERA15 .AQM CRC = 61 96 --> FILE: UNERA15 .COM CRC = B2 50 --> FILE: UNERA15 .DOC CRC = 40 E9 --> FILE: WRINST .BAS CRC = 84 C5 --> FILE: WRINST .DOC CRC = 39 A4 --> FILE: WS-SAVE .COM CRC = E8 71 ---------------------> SUM OF CRCS = 8C 6B