IMD 1.16: 29/05/2007 12:01:13 FOGCPM.010 --FOGCPM010WSAVE DOCWSAVE3-0SUB WSAVE3-3SUB AUTOST30COM AUTOST33COMEX14 COMRESQ COMGRESQ DOCWSAVE12 COMWSAVE12 DOC !WSFAST16DOC*"#$%&'WSFAST16HEX(WSFAST16SUB/)*+,-.WSPAIR COM /0WSPAIR DOC1WSPROP1 DOC22345678WSPROP2 DOCZ9:;<=>?@ABCDPROPOR COMEFGPROPOR DOCHWINDEX COMIJKWINDEX DOCDLMNOPQRSTALPHA COMUOWS COMVOWS DOCWWS0-WS15INFXWS0 COM YZWS15 COM [\FILT7 COM]^_FILT7 DOC#`abcdPURETEXTCOMKefghijklmnPURETEXTDOC opSOFTRETNBASqrstTABS7 COMuvwTABS7 DOCxyz{FILT INF"|}~FILTA COM FILTB COM FILTW COMFILTWC COM HRDSFT COM HRDSFT DOCCOPY2WS COMGCOPY2WS DOCCOPY2WS PASWS-CMDS DOCG-CPM010 DOC1-11-00 85 This is the disk name. SCIGRAPHCOM SCIGRAPHDOC-SIDEWAYSPASF !"#$%SIDEMT COMh&'()*+,-./012SIDEMT DOC3SIDEOKI2COM456789:;<=>?@ABCSIDEOKI2COM]DEFGHIJKLMNOSIDEOKI2DOCHPQRSTUVWXSIDEOKI2CHR>YZ[\]^_`OKSETUP COMaOKSETUP ASM+bcdefgOKISET3 ASMhijkOKICHA12COM lmOKICHA12DOC)nopqrsOKIC DOCAtuvwxyz{|OKIC/CPMCOM}}~OKIC/EX COM}SPRSCRPTOKI OKI COMOKI DOCOKI84 COM --FOGCPM009*************************************************************** * WSAVE.DOC * *************************************************************** * FOR WORDSTAR VERSIONS 2.26, 3.0 and 3.3 * * by Mark S. Stein 11/07/84 * *=============================================================* *FILES INCLUDED: WSAVE3/0.SUB (for Wordstar vers. 2.26/3.0) * * WSAVE3/3.SUB (for Wordstar vers. 3.3) * * AUTOST30.COM ( for Wordstar vers. 2.2/3.0 * * AUTOST33.COM (for Wordstar vers. 3.3) * * EX14.COM * * WSAVE.DOC * *FILES NEEDED: DDT.COM * * * * NOTE: Rename either AUTOST30.COM or AUTOST33.COM to * * AUTOST.COM based on the specific version of Word- * * star that you're using. * * * * IMPLEMENTATION EXAMPLE - Wordstar 3.3 (WSAVE3/3.SUB) * * * * This sub file when placed on the "A" drive with EX14.COM, * * DDT.COM and AUTOST.COM will automatically create the file * * WSAVE3/3.DOC when SYSTEM RESET is initiated followed by a * * COLD BOOT. WSAVE3/3.DOC can provide up to 15K of prepared * * text which ordinarily would be lost when using WORDSTAR * * and incurring a DISK FULL condition while attempting to * * save a created file. * * * * Upon incurring a DISK FULL condition when using WORDSTAR, * * first go the the end of the text file using ^QC and then * * depress the SYSTEM RESET button. Next place a prepared * * diskette containing WSAVE3/3.SUB, DDT.COM, EX14.COM, and * * AUTOST.COM in drive "A". Then COLD BOOT the system, ie, * * enter a carriage return; WSAVE3/3.DOC will automatically * * be created. Then place your WORDSTAR and associated * * overlay files onto the "A" drive and move the diskette * * containing WSAVE3/3.DOC onto the "B" drive. Using WORDSTAR, * * RENAME WSAVE3/3.DOC to your desired FILENAME.TYP. Now using * * WORDSTAR's NON-DOCUMENT mode, enter FILENAME.TYP followed * * by a ^QC to place the cursor to the end of the file. Enter * * a ^KD to SAVE FILENAME.TYP and exit WORDSTAR using an "X". * * Note that the new FILENAME.TYP is of the appropriate file * * size which will be less than or equal to 15K. The backup * * file FILENAME.BAK created by WORDSTAR is a 15K file which * * is not needed and can be erased. * * * * Credit goes to Dave Lopez and Brad Baldwin referenced by * * their article "Saving your ASCII!" in April/May 1983 * * Portable Companion. WS-SAVE.SUB is an extension to their * * original work plus that issued in FOG. * * * and move the diskette * * containing WSAVE3/3.DOC onto the "B" drive. Using WORDSTAR, * * RENAME WSAVE3/3.DOC to your desired FILENAME.TYP. Now using * * WORDSTAR's NON-DOCUMENT mode, enter FILENAME.TYP followed * * by a ^QC to place the cursor to the end of the file. Enter * * a ^KD to SAVE FILENAME.TYP and exit WORDSTAR using an "X". * * Note that the new FILENAME.TYP is of the appropriate file * * size which will be less than or equal to 15K. The backup * * file FILENAME.BAK created by WORDSTAR is a 15K file which * * is not needed and can be erased. * * * * Credit goes to Dave Lopez and Brad Baldwin referenced by * * their article "Saving your ASCII!" in April/May 1983 * * Portable Companion. WS-SAVE.SUB is an extension to their * * original work plus ;************************************************************** ; WSAVE3/0.SUB * ; (formally WS-SAVE.SUB) * ;************************************************************** ; FOR WORDSTAR VERSIONS 2.26 and 3.0 * ; * ; Vers. 1.1 Updated instructions. Mark S. Stein 11/07/84 * ; * ;=============================================================* ; This sub file when placed on the "A" drive with EX14.COM, * ; DDT.COM and AUTOST.COM will automatically create the file * ; WSAVE3/0.DOC when SYSTEM RESET is initiated followed by a * ; COLD BOOT. WSAVE3/0.DOC can provide up to 15K of prepared * ; text which ordinarily would be lost when using WORDSTAR * ; and incurring a DISK FULL condition while attempting to * ; save a created file.  * ; * ; Upon incurring a DISK FULL condition when using WORDSTAR, * ; first go the the end of the text file using ^QC and then * ; depress the SYSTEM RESET button. Next place a prepared * ; diskette containing WSAVE3/0.SUB, DDT.COM, EX14.COM, and * ; AUTOST.COM in drive "A". Then COLD BOOT the system, ie, * ; enter a carriage return; WSAVE3/0.DOC will automatically * ; be created. Then place your WORDSTAR and associated * ; overlay files onto the "A" drive and move the diskette * ; containing WSAVE3/0.DOC onto the "B" drive. Using WORDSTAR, * ; RENAME WSAVE3/0.DOC to your desired FILENAME.TYP. Now using * ; WORDSTAR's NON-DOCUMENT mode, enter FILENAME.TYP followed * ; by a ^QC to place the cursor to the end of the file. Enter * ; a ^KD to SAVE FILENAME.TYP and exit WORDSTAR using an "X". * ; Note that the new FILENAME.TYP is of the appropriate file * ; size which will be less than or equal to 15K. The backup * ; file FILENAME.BAK created by WORDSTAR is a 15K file which * ; is not needed and can be erased. * ; * ; Credit goes to Dave Lopez and Brad Baldwin referenced by * ; their article "Saving your ASCII!" in April/May 1983 * ; Portable Companion. WSAVE3/0.SUB is an extension to their * ; original work plus that issued in FOG. * ; * DDT M7321,ADB9,100 G0 SAVE 59 WSAVE3/0.DOC ^C B" drive. Using WORDSTAR, * ; RENAME WSAVE3/0.DOC to your desired FILENAME.TYP. Now using * ; WORDSTAR's NON-DOCUMENT mode, enter FILENAME.TYP followed * ; by a ^QC to place the cursor to the end of the file. Enter * ; a ^KD to SAVE FILENAME.TYP and exit WORDSTAR using an "X". * ; Note that the new FILENAME.TYP is of the appropriate file * ; size which will be less than;************************************************************** ; WSAVE3/3.SUB * ;************************************************************** ; FOR WORDSTAR VERSION 3.3 * ; * ; Vers. 1.0 Mark S. Stein 11/07/84 * ; * ; This represents a modification of WS-SAVE.SUB which was * ; applied to WORDSTAR VERSION 2.26/3.0. * ; * ;=============================================================* ; This sub file when placed on the "A" drive with EX14.COM, * ; DDT.COM and AUTOST.COM will automatically create the file * ; WSAVE3/3.DOC when SYSTEM RESET is initiated followed by a * ; COLD BOOT. WSAVE3/3.DOC can provide up to 15K of prepared * ; text which ordinarily would be lost when using WORDSTAR * ; and incurring a DISK FULL condition while attempting to * ; save a created file. * ; * ; Upon incurring a DISK FULL condition when using WORDSTAR, * ; first go the the end of the text file using ^QC and then * ; depress the SYSTEM RESET button. Next place a prepared * ; diskette containing WSAVE3/3.SUB, DDT.COM, EX14.COM, and * ; AUTOST.COM in drive "A". Then COLD BOOT the system, ie, * ; enter a carriage return; WSAVE3/3.DOC will automatically * ; be created. Then place your WORDSTAR and associated * ; overlay files onto the "A" drive and move the diskette * ; containing WSAVE3/3.DOC onto the "B" drive. Using WORDSTAR, * ; RENAME WSAVE3/3.DOC to your desired FILENAME.TYP. Now using * ; WORDSTAR's NON-DOCUMENT mode, enter FILENAME.TYP followed * ; by a ^QC to place the cursor to the end of the file. Enter * ; a ^KD to SAVE FILENAME.TYP and exit WORDSTAR using an "X". * ; Note that the new FILENAME.TYP is of the appropriate file * ; size which will be less than or equal to 15K. The backup * ; file FILENAME.BAK created by WORDSTAR is a 15K file which * ; is not needed and can be erased. * ; * ; Credit goes to Dave Lopez and Brad Baldwin referenced by * ; their article "Saving your ASCII!" in April/May 1983 * ; Portable Companion. WS-SAVE.SUB is an extension to their * ; original work plus that issued in FOG. * ; * DDT M8470,BF08,100 G0 SAVE 59 WSAVE3/3.DOC ^C  "B" drive. Using WORDSTAR, * ; RENAME WSAVE3/3.DOC to your desired FILENAME.TYP. Now using * ; WORDSTAR's NON-DOCUMENT mode, enter FILENAME.TYP followed * ; by a ^QC to place the cursor to the end of the file. Enter * ; a ^KD to SAVE FILENAME.TYP aÄ EX14 WSAVE3/0AUTOST30$$$SCIGRAPHDOC-SIDEWAYSPASF !"#$%SIDEMT COMh&'()*+,-./012SIDEMT DOC3SIDEOKI2COM456789:;<=>?@ABCSIDEOKI2COM]DEFGHIJKLMNOSIDEOKI2DOCHPQRSTUVWXSIDEOKI2CHR>YZ[\]^_`OKSETUP COMaOKSETUP ASM+bcdefgOKISET3 ASMhijkOKICHA12COM lmOKICHA12DOC)nopqrsOKIC DOCAtuvwxyz{|OKIC/CPMCOM}}~OKIC/EX COM}SPRSCRPTOKI OKI COMOKI DOCOKI84 COM --FOGCPM009Ä EX14 WSAVE3/3 :1005A3006164206F66206120626C616E6B2E29246A :0000000000 !4w_#~ ʸ A:4~!*.!!p+~ o6:O*"~##ʺ>2*:] ~# _> ~#~SIDEMT DOC3SIDEOKI2COM456789:;<=>?@ABCSIDEOKI2COM]DEFGHIJKLMNOSIDEOKI2DOCHPQRSTUVWXSIDEOKI2CHR>YZ[\]^_`OKSETUP COMaOKSETUP ASM+bcdefgOKISET3 ASMhijkOKICHA12COM lmOKICHA12DOC)nopqrsOKIC DOCAtuvwxyz{|OKIC/CPMCOM}}~OKIC/EX COM}SPRSCRPTOKI OKI COMOKI DOCOKI84 COM --FOGCPM009!9"$1>2ͤ*?*}_|W!x< ~#/bkxp :/<2/Z~#2.:.2.lA+";#:o&6 !S0> 2*h:!"2>2!"4*2#"2:  G*4H'6 #6 #"4òe!='2|\<%!]&6.#e&6$z*4!"4\%*46"6}|q2&2'2(28!"2*;"9"= „2u| > 2O:&yʯ;A^$2) O:8yuNu͒:; ?|$%.ʘ#ʓ<ʪ>ù>ù>ù>ù> > 2)u!A0> 2*h> ~!)w¹O:(yʹ:&yʹ#!):8=28ʏ jw:8ʉ> > ~> ~>ù>!(£w>ù>2)!&u2&2'ù>2)!'u2'2&ù*6}|ʉw+*###>E#>X#>Oͤ*$:6+6} %. 6+6X+6E+:w+:w+6*'ͤͤͤͤ*,ͪ fͤ ͤͤ zͤ|`ڣ{G @;:?$.#<>G@G$^|1Y:Y12+!U _^#V{ w+#~!A:+P_^#V{P w#&*2#"2!)6!86kb"0"9 :(:&:8<28", ʜ os#r#:*b ʜ ‰o>  ~ µ> #_ê!ͤ@ͤ*2*0~# 6 ~#_   |{0_~#'_x{ w#0SUB 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.4 11-22-82$ $ppppppppppppppppppppppppppppppppI"""~+"21*|g."*" *! 1*~*"*"#^#V!_:O*AâÐu!9"!ͥ͢ʽ½ͥ*#w">*:2́a OC[[ 2> O:y½ͨÚ*"222Úͥ͢ʽ 7ͨOu u!Kw!Ww2*"x: :y2è*~+"*#"**{z­og"!m*å1!J!m*! (~#:!0:A[a{2:~$#Oͨ!A!!u >>>Ex Aborted<<< $ (Ex Active)$ (Ex Completed) >$ßâåèBDOS>   "IH! !B"$$HB!$BD$$$$H"D $$I """~+"21*|y arguments - $EX 1.4 11-22-82$ $ppppppppppppppppppppppppppppppppI"""~+"21*|g."*" *! 1*~*"*"#^#V!_:O*AâÐu!9"!ͥ͢ʽ½ͥ*#w">*:2́a OC[[ 2> O:y½ͨÚ*"222Úͥ͢ʽ 7ͨOͫCopyright (C) 1984 BORLAND IncAKaypro II and IVctedP= ER~7#~=% o&ͦoͦܐԩͣ}!!"8~#(}:$= +*!Z!*B!!:(=2!Z: <2!!!:O::O:!*B! !45(!.+/ 0y0( d!kZ!{Z͈͈o&  :(y ͠|( *"x2y( >28!?"9!!>2 :D]SXN]D [ (!e}̈́A8Q0G: x@!\w# (   yV. V!h6# (*(.(!8}(*(̈́w#>?> w#a{ |͒}͛Ɛ'@'7||}>"C"6# ""͐ͩ*B"[R5*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#E͊w}8uRB0 >R@RR!+ͨ z R!+ͨ z <!+ͨ z <!+ͨ z <!#ͨ z <!+ͨ z T]KB!z> S>))0 = |JJDMgo>jB0 7?= H\<z5+)+<z {0Gɯgo||H}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'ͬͬdͬ ͬ} wͦWͧ _}8(8J`9{T]=o`9y w >uJ u` }>(; xQ }} ˸T}ٕ(0D=C ,= ( [ 0%D , 7 ͏ ?(8u x O - ; 8˸x X ,-xG}; }م 9; .>#n0[ D = - nx P ,-(-˸G,-; }ٕ? 9.>͏ 8u ?= u+-(>O 0u O 8͏ ?x P , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx(ͼ ?}ٽÏ }ց; <(; 7D = |٤g{٣_z٢Wy١Ox٠GD u J }x>uu}ƀ/ƀo; -J }0W-J W,}l˸ͨ 8 ; ` x( -ͨ 8J -ͨ 8,J }l8;*!` ! >u` ` u--- J ,,,-xGg?+2n*8t z~,->uxua}.; OJ , ; !U >,k- o&0%,` }g; }؉}颋.:}8c~I$I~L*kٷx˸; }0G,͙<},-(-J ! >0 a` o8 Oþ >um.`1pF,t6|!wS<.z}[|%FXc~ur1}Oٯx(<˸ͨ 8; !~Jͨ 0O!><ͨ 8 =  7 <` O ; 7 0 W-J OT0 j oD,:j !I}袋.}8c~I$I~L!>u` ` 77 ` = O nf^VNF!DLT\I!!53!r1!\!> x #-= o˸xO(- }(x>8(C ,C `iM!>u|; |J>| )=|(DMbo˸ͦ88ͦx(0 8> Mx(>-Ͳ{(ay(Ͱͦ \z(>.Ͳ (Ͱ ~ͦ{>EͲ>+|(|Dg>-Ͳ|/ 0:p# ~# +>0w#,-  60#J˸}րogM| .(C = ~> x0w#xG%P %P ZJDM%P = _~65i+~hìx-Sx9?+{Η@}|C C gZJDM0D ,7}o˸  #yO!@9i&   # w# /w# w#!9! E9!!9~(+F͊!"9!(#>2*Ͳ"|>" :( ͆ *6#w*6#6 !\$![ (̈́( #:~CONTRMKBDLSTAUXUSR>2$*#~ Ͷ$*:> >w###6  #6++p>2S-$Ͷ:*6###ww#w$w#w: ##N#F*B> w#w#[s#r>2S$Ͷ$*6 #-Nw#Fwq#p#6#w#w#w* :( ͒: *^ F* < >26"~͟*-w#ww#͟"~ <@*Ͳ!\  <ʮ!\$> >2*|>! * \$\<(!: [1Á\!(f"> 2:!<"F( #~#6e>!["N>!~8>O6*"w (=(&("( :(N 8y(~#x+% (6*#~[*#~ *~(h#"b=  8 J= B== ͯ}8= ͵}/ͭ !*###~-_~(4Q6*>2>*##w:>*##~*#~(E[ ( ( ( !][ ( ( ((w#(6!]~-#8~>7  [>OkͼMs #rkͼpX á[ [ (( #w(q*#~[ (  *##~6͜O$*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46͡> *:4^q}Ò*|(M|( M6-#͐ͦ[R8 (G> ͒C~͒#*ͦC!h !lTRUEFALSEͦ!9^#(~#(G~͒#> ͒> Ò "F![(#RR0*4#4> RR *4 #4(>>2$*V(/˖:(#~+ x y2!͵( =( X:(R*:(###~-_-͌X> :("͟"*^˞*V˖0 SRѷR8A* N#F#s#r$ 0})jS\*###w* N#FB ͟r+s> !T]>)j)0 0= UR!#U*^#V#N#F#^#V>">!2DM"~x(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>> SRѷR* s#r$ s#r"S"! N#FB(^x * 6#[<(H*! Kq#p##K[! *! 4 #4! x *$ *>w""{_!"*nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* 5KB!>u~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6# * *!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#VS>O"w2x2!"" @*>2"!"""!\Ͳ*: !~6go(\R*s#r_2x( s x(T]DMR0 -a%}̈́o*!~6o&͠|ͣ}%^C User break1:% I/O% Run-time% error ͒%, PC=[R"͍% Program aborted*1!͍!d$Ͳa !"*!ͯE> *!ͳ !͡Z *!ͳ !͡!Ŕ= **>> RESQ finds and rescues text from RAM <<**͐bŔ' v1.2͐bŔSearch for --> b!~+7._b!~!!s!$"|!}2{*| !{ ͸*{&}o}oEʊ#!!5zʝ!}2y!~*y&*|n&!|g}os*|!"|*y&#\!ŔSearching at --> *| !!@́d b!~ !~ |}2z*z&!aEx#!}2{Ŕ< **>> STOP SAVING TEXT BY HITTING ANY KEY <<**͐b*|!R*z&"|ŔFound cue string at --> *| !!@́d͐bR͐b*|!Rn&! -}oE"*|!R"|ç"!RES.Q<b!b͠}o*| !{ ͸}o*|n&!a}oEl#![*|n&bR*|n&b*|!"|!B"!bÇ#*|!6R"|&!R͐bR͐b*{&}oE$ŔString not found between !$ !!@́d and !{ !!@́d in RAM͐ba$ŔC **>> Recovered text put in RES.Q on the logged drive <<**͐band !{ !!@́finds and rescues text from RAM <<**͐bŔ' v1.2͐bŔSearch for --> b!~+7 **>> RESQ v1.2 <<** If you've ever lost text due to a WordStar "disk full" glitch, or forgotten to save that text file you just downloaded, or frozen your console with a spark from your hand during dry weather, or given the wrong answer to "Abandon current version?", you can use RESQ. This program: * hunts through RAM for a text phrase you supply * backs up from the phrase until it hits control characters * now goes forward again, showing you the text * simultaneously saves the text in RES.Q on your logged drive * stops and closes the rescued file when you hit any key, or * when it finds the end-of-file character RESQ searches its own version of RAM with all eighth bits reset. Thus it finds text made by WordStar as easily as ASCII text. Similarly, it ignores the common WordStar control characters when backing up. The backing feature makes it unecessary for you to remember the phrase (up to 55 characters) which begins your semi-lost file. Just give RESQ a phrase anywhere in the text, and it will usually be able to get back to the head of the text before beginning to save. If not, try another phrase which may come earlier in the file. You might have to edit the beginning and end of the saved text to restore it completely, but then... RESQ works for any program which buffers text above the point where RESQ itself leaves off, at about 248Ch. For example, RESQ finds text left in RAM by WordStar, Mex, and the Turbo Pascal editor equally well. The search is unaffected if you must reset (cold boot) before using it to find your text. RESQ is also occasionally useful to find program headers, etc. for manipulation by DDT, because it tells the user the address (in decimal) where the phrase was found. This program was inspired by Chris and Steve Rudek's MAGE, which is a Public Domain "saver" directed only at the WordStar text buffer. RESQ was written for CP/M 2.2, and assumes a 64K system. Because it searches, and therefore requires no addresses except a start and end, it will probably work without adjustment on other CP/M systems. With minor readdressing, it seems likely to work on any system where the Turbo Pascal compiler does. Good luck; but you'll need less luck with RESQ. February, 1985 Mike Yarus 2231 16th Street Boulder, CO 80302 Compuserve 73145,513  Boulder, CO 80302 sing it to find your text. RESQ is also occasionally useful to find program headers, etc. for manipulation by DDT, because it tells the user the address (in decimal) where the phrase was found. This program was inspired by Chris and Steve Rudek's MAGE, which is a Public Domain "saver" directed only at the WordStar text buffer. RESQ was written for CP/M 2.2, and assumes a M1KWSAVE 1.2 - 12/84 - E.Meyer Saving RAM contents * >-*"  to disk file. 2h2|\ ʓ\<ª++ File error ++*"* Filtering RAM... *ͧ}El&)x#" H records, saving to disk... ʈ*"*}=̞\U ++ Write error ++o* *+"} \<; Done. ++ Aborted ++ o6~Gx:w6 #{§_㯆#}o|g0:|}OKIC/EX COM}SPRSCRPTOKI OKI COMOKI DOCOKI84 COM --FOGCPM009 WSAVE.DOC --------- Documentation for WSAVE.COM Version 1.2 - 12/84 E.Meyer WSAVE.COM is a utility program that painlessly saves the contents of a block of memory to a disk file. It was designed to recover from Wordstar crashes: full disk, BDOS error, etc while trying to save to disk. (Of course it will work with any text editor.) If you actually crash out of Wordstar, you will have "work" files on your disk (typically filetype "$$$") from which you can recover some of your work. If you have to exit Wordstar with ^K^Q, it will usually delete those files, and you will have to go after them with the DU or UNERA utilities. But first, worry about what's in memory! On my Osborne Executive, for example, over 25K of text may remain in memory. Recovering this, using existing utilities like SAVE, can be difficult -- not the sort of thing you want to cope with in moments of crisis.  Once you have WSAVE, however, all you have to do is: remove the disk with your text files on it, insert a disk with WSAVE and plenty of room on it, and type WSAVE FILE.TYP. The entire contents of memory will be copied to a text file with the specified name. Since there may also be things other than your text up there, particularly toward the end, WSAVE even "filters" the data, replacing undesirable characters (nulls, deletes, and end-of-files) with spaces. WSAVE takes only 1K of disk space. It is not limited to Wordstar recoveries; it can be used to recover from a crash with ANY program that leaves valuable text in memory. The size of its output file depends on your CP/M configuration, usually about 54K. You can abort WSAVE with control-C. OPTIONAL USER CUSTOMIZATION You can modify your copy of WSAVE with DDT, SID, or a similar utility, to control whether or not you want the parity bit left alone in the "filtered" text. (You may know that Wordstar uses it for "soft" characters and ends of words, so for Wordstar you would want to leave parity alone. For other editors, you might not.) The address in hexadecimal given below includes a 0100H offset, as used by the above programs. ADDRESS DEFAULT MEANING 0103 FF 00 = Zero parity bit for standard ASCII. FF = Leave parity bit alone for Wordstar. This is simple to do; if you don't know how to use DDT or SID, ask a friend to show you. WSAVE will display the start and end addresses it is using. It begins immediately after itself in RAM, and continues up to the top of the TPA (where the BIOS begins). es it is using. It begins immediately after itself in RAM, anWSAVE with control-C. OPTIONAL USER CUSTOMIZATION You can modify your copy of WSAVE with DDT, SID, or a similar utility, to control whether or not you want the parity bit left alone in the "filtered" text. (You may know == WSFAST16.LBR == Documentation and Instructions for use WSFAST16.LBR contains the following files: WSFAST16.SUB - A submit-type file containing patches for WordStar version 3.3, as supplied with Kaypro computers. EX.COM - Actually EX14.COM, a public domain replacement for SUBMIT.COM WSFAST16.HEX - The assembled patch to allow printer to run while editing (not the same file!) You must supply the following files: DDT.COM - DRI's debugger, supplied on your system disk WS.COM - An INSTALLED copy of your WordStar. It MUST be pre-installed for your settings before you modify it, or you may not be able to re- install it..... WSFAST11.SU  wa th firs release versio o thi package I wa  originall writte b Stev Sander t correc th annoyin proble wit slo sign-o o WordStar I ha bee enhance an modifie b addin routine t eliminat th firs tw screen completely allo th printin o on documen whil editin another and optionally signin o th th B driv a startup. == INSTRUCTIONS FOR USE == Place WS.COM, DDT.COM, EX14.COM, WSFAST16.HEX and WSFAST16.SUB on drive "A" or A0: and type A0>EX WSFAST16 It will create WSX.COM. Please test WSX.COM and if OK,then REN it to WS.COM and enjoy... == REVISION HISTORY == Vers. 1.1 Steve Sanders 05/10/84  Locations changed: 2b1h lengthens time before WS brings up the help messages 2b2h Copyright notice delay 2b3h Screen refresh delay 28eh Delay after cursor movement 28fh Delay after WS functions ============================================================ Vers. 1.2 Jim Gronek and Wm. A. Rhodes,Ph.D. 07/06/1984 Added fill patches to further speed up sign-on Ver 1.2 NOTE---> This fill patch overlays the MicroPro copyright notice sign-on with nulls, it can only legally be used on YOUR copy of Wordstar 3.30. ============================================================ Vers. 1.3 Jim Gronek and Wm. A. Rhodes,Ph.D. 07/10/84 Added fill patch to bypass first screen sign on. This line was to be included in vers. 1.2, but Murphy's Law prevails. ============================================================ Vers. 1.4 Jim Gronek and Wm. A. Rhodes,Ph.D. 07/16/84(not released) This version was not generally released. It contains a user selectable patch to automatically sign on to drive B: at sign-on. ============================================================ Vers. 1.5 Jim Gronek 08/09/84 Revised menu patches from 1.2 and 1.3 with patch from Mark Howard, CNY Technical RCP/M. Added patch to allow printer output while editing, without long delays when the printer goes busy. Patch modified from John G. Donohue's version for WS 3.0. ============================================================ Vers. 1.6 Jim Gronek 08/14/1984 Revised location for load of hex patch to avoid over- writing arrow key definitions on Kaypro supplied WS.COM. WSLSTPAT.HEX caused the arrow key definitions to 'go away'. WSFAST16.HEX corrects that problem. ============================================================ Documentation by Jim Gronek 08/14/1984  e editing, without long delays when the printer goes busy. Patch modified from John G. Donohue's version for WS 3.0. ============================================================ Vers. 1.6 Jim Gronek 08/14/1984 Revised location for load of hex patch to avoid over- writing arrow key definitions on Kaypro supplied WS.COM. WSLSTPAT.HEX caused the arrow key definitions to 'go away'. WSFAST16.HEX corrects that problem. ============================================================ Documentation by Jim Gronek 08/14/1984  :04071800FFC3F50224 :1002F500E5210603E3E5D52A0100112A0019D1E31A :04030500C9DE01C983 :0000000000 AUTOST30COM AUTOST33COMEX14 COMRESQ COMGRESQ DOCWSAVE12 COMWSAVE12 DOC !WSFAST16DOC*"#$%&'WSFAST16$$$OKSETUP COMaOKSETUP ASM+bcdefgOKISET3 ASMhijkOKICHA12COM lmOKICHA12DOC)nopqrsOKIC DOCAtuvwxyz{|OKIC/CPMCOM}}~OKIC/EX COM}SPRSCRPTOKI OKI COMOKI DOCOKI84 COM --FOGCPM009;************************************************************* ; WSFAST16.SUB * ;************************************************************* ; * ; Vers. 1.1 Steve Sanders 05/10/84 * ;============================================================* ; Vers. 1.2 Jim Gronek and Wm. A. Rhodes,Ph.D. * ; 07/06/1984 * ;============================================================* ; Vers. 1.3 Jim Gronek and Wm. A. Rhodes,Ph.D. * ; 07/10/84 * ;============================================================* ; Vers. 1.4 Jim Gronek and Wm. A. Rhodes,Ph.D. * ; 07/16/84(not released) * ;============================================================* ; Vers. 1.5 Jim Gronek 08/09/84 * ;============================================================* ; Vers. 1.6 Jim Gronek 08/14/84 * ;============================================================* ; This sub file when placed on a drive(/user) with EX.COM, * ; DDT.COM, and WS.COM (version 3.30) will automatically * ; make the necessary changes to WS.COM for a very quick * ; sign-on and everything else displayed. * ; * ; Place WS.COM, DDT.COM, EX14.COM, WSFAST16.HEX and * ; WSFAST16.SUB on drive "A" or A0: and type * ; * ; A0>EX WSFAST16 * ; * ; It will create WSX.COM. Please test WSX.COM and if OK, * ; then REN it to WS.COM and enjoy... * ; * ;///////////////////////////////////// * ; Locations changed: * ; * ; 2b1h lengthens time before WS brings * ; up the help messages * ; 2b2h Copyright notice delay * ; 2b3h Screen refresh delay * ; 28eh Delay after cursor movement * ; 28fh Delay after WS functions * ; * ;REVISION 1.2 JULY 6, 1984 * ; * ; Added fill patches to further speed up sign-on * ; J. A. Gronek & William A. Rhodes Ph.D. * ; Phoenix, Az. * ; * ; Ver 1.2 NOTE---> This fill patch overlays the MicroPro * ; copyright notice sign-on with nulls, it can only legally * ; be used on YOUR copy of Wordstar 3.30. * ; * ;REVISION 1.3 JULY 10, 1984 * ; * ; Added fill patch to bypass first screen sign on. This * ; line was to be included in vers. 1.2, but Murphy's Law * ; prevails. * ; J. A. Gronek & William A. Rhodes Ph.D. * ; Phoenix, Az. * ; * ;REVISION 1.4 JULY 16, 1984 * ; * ; This version was not generally released. It contains * ; a user selectable patch to automatically sign on to  * ; drive B: at sign-on. See note below to activate patch. * ; * ;REVISION 1.5 AUGUST 9, 1984 * ; * ; Revised menu patches from 1.2 and 1.3 with patch from * ; Mark Howard, CNY Technical RCP/M. Added patch to allow * ; printer output while editing, without long delays when * ; the printer goes busy. Patch modified from John G. * ; Donohue's version for WS 3.0. * ; * ;REVISION 1.6 AUGUST 14, 1984 * ; * ; Revised location for load of hex patch to avoid over- * ; writing arrow key definitions on Kaypro supplied WS.COM. * ; WSLSTPAT.HEX caused the arrow key definitions to 'go * ; away'. WSFAST16.HEX corrects that problem. * ; * ;************************************************************* ; ; first two patches are ; timing patches (ver 1.1) ddt ws.com s2b1 50 01 01 s28e 01 01 ; ; next two lines bypass menus ; (ver 1.5) F3CF1,3CFC,0 F3D0F,3D26,0 ; ; next two lines insert the ; printer patch (ver 1.6) iwsfast16.hex r ; ; If you want your WordStar ; to log on to the B: drive ; automatically, remove the ; semicolons from the next ; 16 lines of code.(ver 1.4) ;s0101 ;30 ;03 ;. ;s0330 ;0E ;0E ;1E ;01 ;CD ;05 ;00 ;C3 ;FC ;2C ;. ; this is the end of the B: ; drive sign-on patch. Next ; line warm boots and saves ; patched version for testing g0 save 70 wsx.com ; ; ; Modification now completed... ; ; Now test WSX.COM before renaming to WS.COM for normal use ; * ; WSLSTPAT.HEX caused the arrow key definitions to 'go * ; away'. WSFAST16.HEX corrects that problem. !9"N1rVER01.02.84.PAIR:] Š!\"79Ê{?^> HW_> H!wmÌ~H#m !mëENTER FILE NAME:*7w# > Ϳw# ¿  !":2*~#"x=D y!9"N1r^ ^a_ a-_.k.k:O@^aM_ a__.kO^*7  aڃ_u!e͞óO~# žCOM!m LOOKING FOR UNBALANCED!m^B,^D,^S,^T,^V,^X\2h2|1<=?! m.NO SOURCE FILEIFR!|y\dp!U~#’:<2U¢:<2U²:<2U:<2U:<2U:<2UU?! mCOM FILE?I:3! m' UNBALANCED^>BH:<2:b!I mV UNBALANCED^>DH:<2:ґ!x mÅ UNBALANCED^>SH:<2:! mô UNBALANCED^>TH:<2:! m UNBALANCED^>VH:<2:! m UNBALANCED^>XH:<2:I!4mI NO UNBALANCED PAIRS*N !mëENTER FILE NAME:*7w# > Ϳw# ¿  !":2*~#"x=D y!9"N1r^ ^a_ a-_.k.k:O@^aM_ a__.kO^*7  aڃ_u!e͞óO~# žCOM!m LOOKING FOR UNBALANCED!m^B,^D,^S,^T,^V,^X\2h2|1<=?! m.NO SOURCE FILEIFR!|y\dp!U~#’:<2U¢:<2U²:<2U:<2U:<2U:<2UU?! mCOM FILE?I:3! m' UNBALANCED^>BH:<2:b!I mV UNBALANCED^>DH:<2:ґ!x mÅ UNBALANCED^>SH:<2:! mô UNBALANCED^>TH:<2:! m UNBALANCED^>VH:<2:! m PAIR.DOC 01/30/85 by Robert Flagg 72466,2332 Documentation file for PAIR.COM dated 01/02/84, author unknown PAIR is a program used to examine WordStar files for single occurrences of print control characters usually used in pairs, such as ^B, ^S, ^D etc. Anyone who has left a long job printing and returned to find pages 15 through 35 completely underlined will appreciate this program. It does not fix the problem, but it will tell you whether you have any unbalanced pairs. If you do, you then must use WordStar to locate the unbalanced pair and fix it. To use, simply invoke the command at the system prompt: A>pair ENTER FILE NAME:pairtst LOOKING FOR UNBALANCED^B,^D,^S,^T,^V,^X UNBALANCED^B UNBALANCED^S A> You can also include the filename and optional drive on the command line: A>pair d:pairtst2 LOOKING FOR UNBALANCED^B,^D,^S,^T,^V,^X NO UNBALANCED PAIRS A> -eof-  INSTRUCTIONS FOR PATCHING WORDSTAR's PROPORTIONAL SPACING First, a paraphrase from the "documentation": This experimental, unsupported, and otherwise undocumented proportional spacing feature is toggled on and off with a control-P print control character embedded in the text. When on, WORDSTAR will attempt to proportional space during printout the lines formed by the editor without regard for varying character widths. The relative widths only of characters are varied, the line length and the number of characters on a line are left as formed by the editor. Thus, optimum printout appearance may not occur when a line contains an unusually large proportion of either narrow characters or wide characters. This proportional spacing action will not occur in the last line of a paragraph unless it is explicitly formed with control-B. It may not occur on lines containing one word only. Besides the above, there is a further restriction that is not mentioned. The WORDSTAR software only recognizes widths up to 7 units (they only use 3 bits) and the correct widths for Xerox print wheels include a few with 8 units. So, the "M", "W", "m", "@", and "%" characters are slightly narrow. Sorry, it's the best we can do. INSTRUCTIONS Run the INSTALL.COM program that comes with your package. It will ask: . . .Normal. . .Install? answer "N" . . .Options. . .selection: answer "D" filename to modify: answer "WS.COM" (or "XWS.COM) . . .Terminal: answer "U" . . .OK? answer "Y" . . .Printer: answer "U" . . .OK? answer "Y" . . .Communications: answer "U" . . .OK? answer "Y" . . .Driver: answer "U" . . .OK? answer "Y" . . .Complete? OK: answer "N" Location to change: answer "07D8" address 07D8H, old value 52H, new value: answer "55" Location to change: answer with carretn to advance to next consecutive location. Continue this process until you complete the table that follows the message (the first entry is repeated for completeness). When complete, enter a "0" for Location and it will exit this mode. It will then ask: . . .OK: answer "Y" Now to test it out, first get yourself a proportional spaced print wheel. Then at the top of your document enter: .CW 10 ^P The ".CW 10" causes the line breaks to be calculated on 12 pitch spacing (anything else is hopeless). The "control-P" is what causes the Proportional Spacing to take place (you enter this by hitting control-P twice when in Wordstar, in XWS you do control-5 and then control-P). Remember to always troll through your document with reformatting commands even though it looks ok. It's needed for the last line of each paragraph (lots of control-B's in WS, I don't know the control code for XWS). Good luck, PATCH TABLE FOR XEROX PROPORTIONAL WIDTHS In the table that follows, the left three values are in HEX. The character representation is included for your reference only. All you need are the "New" values. For missing values, use the old for want of a better. The format of the value is: left digit for normal width, right digit for proportional width (i.e. for the character "#", the normal width is 5 units, the old PS width was 4 units, and the new PS width is 6 units). addr OLD NEW char 07D8 52 55 phantom space (cent sign,) 07D9 43 43 ! 07DA 44 44 " 07DB 54 56 # 07DC 54 55 $ 07DD 56 57 % (it really should be 58) 07DE 56 57 & 07DF 32 32 ' 07E0 43 43 ( 07E1 43 43 ) 07E2 54 55 * 07E3 54 55 + 07E4 42 43 , 07E5 54 54 - 07E6 32 33 . 07E7 53 54 / 07E8 54 55 0 07E9 54 55 1 07EA 54 55 2 07EB 54 55 3 07EC 54 55 4 07ED 54 55 5 07EE 54 55 6 07EF 54 55 7 07F0 54 55 8 07F1 54 55 9 07F2 43 43 : 07F3 42 43 ; 07F4 54 < 07F5 54 55 = 07F6 54 > 07F7 54 55 ? 07F8 56 57 @ (it really should be 58) 07F9 55 57 A 07FA 55 56 B 07FB 55 57 C 07FC 56 57 D 07FD 55 56 E 07FE 55 56 F 07FF 56 57 G 0800 56 57 H 0801 53 53 I 0802 53 55 J 0803 56 57 K 0804 55 56 L 0805 66 67 M (it really should be 68) 0806 56 57 N 0807 56 57 O 0808 54 56 P 0809 56 57 Q 080A 56 57 R 080B 54 55 S 080C 55 56 T 080D 56 57 U 080E 56 56 V 080F 67 67 W (it really should be 68) 0810 56 57 X 0811 56 57 Y 0812 55 56 Z 0813 54 [ 0814 56 \ 0815 54 ] 0816 56 0817 55 55 underline 0818 54 0819 54 55 a 081A 54 55 b 081B 54 55 c 081C 54 55 d 081D 54 55 e 081E 53 54 f 081F 54 55 g 0820 54 55 h 0821 52 53 i 0822 52 53 j 0823 54 55 k 0824 52 53 l 0825 66 67 m (it really should be 68) 0826 54 55 n 0827 54 55 o 0828 54 55 p 0829 54 55 q 082A 53 54 r 082B 53 54 s 082C 53 54 t 082D 54 55 u 082E 54 55 v 082F 66 67 w 0830 54 55 x 0831 54 55 y 0832 54 55 z 0833 54 { 0834 56 0835 54 } 0836 56 ~ 0837 55 phantom rubout(not sign, double underline) I have been using proportional spacing with WordStar3 for several months now and have come across several problems. UNDERLINING looks terrible -- because the underline character is not as wide as the larger characters. To get around this problem, I have had to edit my already-formated files to remove the underline toggle characters, enter a "special Carr-retn" for over printing, enter space characters to the right position, and enter underline characters for the required width. It isn't very easy but the printout looked OK. INTERNAL TABS ON A LINE DON'T WORK -- because they are transformed into variable-width spaces. I had to get around this in a similar way as above: Each internal tab needs to be replaced with an Overprinting-carr-retn and enough spaces to get to the right position. It appears that WORDSTAR3 assumes that the initial spaces on a line are for defining the left margin and so it does not make them variable width. I have been told that CNT-O-G can fix this problem but I have not verified it. MAILMERGE OPTION DOESN'T WORK -- because the software gets hopelessly confused as to what widths to use where as it switches from file to file on the same line. I used it in a mailing to a list of 400, and it did the right thing about a third of the time. Most of the time the inserted text was printed without proportional widths, but sometimes the following lines were messed up too. It looked reasonable except for names with "i"'s and "M"'s in them. e printout looked OK. INTERNAL TABS ON A LINE DON'T WORK -- because they are transformed into variable-width spaces. I had to get around this in a similar way as above: Each internal tab needs to be replaced with an Overprinting-carr-retn and enough spaces to get to the right position. It appears that WORDSTAR3 assumes that the initial spaces on a line are for defining the left margin and so it does not make them variable width. I have been told that CNT-O-G can fix this problem but I have not verified it. MAILMERGE OPTION DOESN'T WORK -- because the software gets hopelessly confused as to what widths to use where as it switches from file to file on the same line. I used it in a mailing to a list of 400, and it did the right thing about PATCHING INSTRUCTIONS FOR USING WORDSTAR'S (AND XWS'S) "UNDOCUMENTED" PROPORTIONAL SPACING FEATURE BACKGROUND: WordStar, Versions 2.26 and 3.00 (and Xerox's XWS Word Processor, derived from Wordstar, Version 2.26) contains an "experimental, undocumented and unsupported" proportional spacing feature that can be toggled on and off by embedding ^PP (that's control-P followed by a P -- or a ^5P in XWS -- shows simply as ^P in the file) control characters within a text file during editing. When toggled ON, WordStar will attempt to proportionally space each character in the lines that follow during file printout until another ^P is encountered to toggle the feature OFF. This is done using a character-width lookup table loaded into memory as part of WS.COM (or XWS.COM). Only relative widths of characters are varied--line lengths and number of characters on a line do not change from the way they appear in the file after editing. If justification was in effect while editing, the lines will also be right justified. One of the reasons that this feature is "experimental" is that there is still a problem with getting WordStar to proportionally space the last line in each paragraph. Proportional spacing of paragraph last lines will only occur if each paragraph is expli- citly reformed with ^B (^6 in XWS). Even then, correct charac- ter spacing may not occur, if a last line contains only one word! There is yet another problem, having to do with the character- width lookup table. Ideally, this table only supports one char- acter set (font) at a time; that is, it can contain only one set of values, so either (1) those values must be a compromise if they are to be used with several printwheels, or (2) they must be "fine tuned" to the character widths of one specific printwheel by trial and error. The current (default) values are a compromise set. Fortunately, this limitation can be turn- ed into an advantage--non PS (Proportional Space) plastic print- wheels can also be used just by patching in values to fit each specific wheel!! I'll be giving you some starting values for both types of printwheels, specifically: (1) the metal ROMAN PS, and (2) the plastic COURIER 72, later in the patching instruc- tions. Another problem I've found. Select values for upper-case (cap) characters that look good in normal text and they look terrible when the characters appear in an all-caps heading. Or the re- verse, select cap-character values so they look good in all-cap headings, and they don't look right in normal text. Here's the compromise that I've found works best. The values for cap let- ters given in the patching instructions make them look good in normal text. For all-cap headings, simply toggle proportional spacing OFF with ^P, let the heading be printed normally, and then toggle proportional spacing back on with another ^P to re- sume proportional printing of the text that follows. The results don't appear all that bad--actually they're rather pleasing. One last thing that you should know. Most (if not all) PS printwheels are 10 pitch (or Pica), but they look better pro- portionally spaced when printed 12 pitch (or Elite). The same thing is true with 10-pitch plastic wheels, like the COURIER 72. So I've included patching instructions for changing the stan- dard (default) pitch to 12 and the alternate pitch to 10, so that the patched copy of WS.COM or XWS.COM will automatically come up in 12 pitch for better proportional printing. There's also an optional patch to make Justify (OFF) the default condi- tion, which you may or may not elect to include without upsetting anything. PATCHING INSTRUCTIONS: 1) Make a copy of your already installed WS.COM (or XWS.COM) onto a fresh, initialized disk. Include all the standard WS overlay files and the INSTALL.COM that came with your package, as this will become your working program disk for editing and printing proportionally spaced text files. Before going any further, make sure that the copy of the WS.COM file you'll be patching is not write protected (not $R/O). NOTE TO XWS USERS: You'll have to use DDT or some disk file editor you may own to make these patches, as mother Xerox didn't supply INSTALL.COM with your software. OR, if you can get ahold of INSTALL.COM for WordStar, Version 2.26, it will work on XWS.COM exactly as described here. 2) Run the INSTALL program. It will ask: ....normal, first-time INSTALLation..? Ans: "N" ....INSTALLATION OPTIONS..SELECTION: Ans: "D" Filename of WordStar to modify? Ans: "WS.COM" (or "XWS.COM") ....TERMINAL MENU #1......SELECTION: Ans: "U" (Displays your terminal) OK? Ans: "Y" ....COMMUNICATIONS..MENU..SELECTION: Ans: "U" (Displays your protocol) OK? Ans: "Y" ....DRIVER MENU...........SELECTION: Ans: "U" (Displays your driver) OK? Ans: "Y" ARE...MODIFICATIONS...COMPLETE...OK: Ans: "N" You will now be asked: LOCATION TO BE CHANGED (0=END): INSTALL is asking you for the hex memory address where you want to make the change. Enter "0386", which is the auto- justify flag. NOTE: DDT users: all addresses are as given. But those using a disk editor must remember that there is a 0100H offset in addressing a program in memory and one directly from disk. (Most disk editors I've seen start their dump at 0000H, so you'll probably find the auto-justify flag 0100H lower, i.e. at "0286".) INSTALL responds by giving you the current (default) value of "FFH" and asks you to enter the NEW value. Enter "00" to make auto-justify (OFF) the start-up default (or simply a to leave it at its present state with auto-justi- fy (ON) as the default. (NOTE: The "H" trailer need not be entered for any values; INSTALL "knows" your entries are in hex.) After a new value entry, INSTALL will ask you for another location address for the next change. Continue through the patching table that follows. In this table, all addresses and values are given in hex. The character presentations in the table are for reference only and do not appear on the screen. You need only patch those locations where a value change is indicated. Where no new value or values are given, the old (default) values should work. A without a value entry leaves the value unchanged. As INSTALL indicates, you terminate the patching by entering "0" as your next ad- dress. EDITING FLAG PATCHES MEM ORIG NEW ADDR VAL VAL DESCRIPTION 037C 0C 0A Changes default character width from 10-pitch to 12-pitch 037D 0A 0C Changes alternate character width from 12-pitch to 10-pitch CHARACTER LOOKUP TABLE PATCHES MEM ORIG ROMAN PS COURIER CHAR ADDR VAL VAL 72 VAL AFFECTED 07D8 52 55 53 phantom space char 07D9 43 -- -- ! 07DA 44 -- -- " 07DB 54 56 -- # 07DC 54 55 -- $ 07DD 56 57 55 % 07DE 56 57 -- & 07DF 32 -- -- ' (apostrophe) 07E0 43 -- -- ( 07E1 43 -- -- ) 07E2 54 55 -- * 07E3 54 55 -- + 07E4 42 43 -- , (comma) 07E5 54 -- -- - (hyphen) 07E6 32 33 -- . (period) 07E7 53 54 54 / 07E8 54 55 -- 0 07E9 54 55 -- 1 07EA 54 55 -- 2 07EB 54 55 -- 3 07EC 54 55 -- 4 07ED 54 55 -- 5 07EE 54 55 -- 6 07EF 54 55 -- 7 07F0 54 55 -- 8 07F1 54 55 -- 9 07F2 43 -- 42 : 07F3 42 43 -- ; 07F4 54 -- -- < 07F5 54 55 -- = 07F6 54 -- -- > 07F7 54 55 -- ? 07F8 56 57 55 @  07F9 55 57 54 A 07FA 55 56 54 B 07FB 55 57 54 C 07FC 56 57 54 D 07FD 55 56 54 E 07FE 55 56 54 F 07FF 56 57 55 G 0800 56 57 54 H 0801 53 -- -- I 0802 53 55 54 J 0803 56 57 54 K 0804 55 56 54 L 0805 66 67 65 M 0806 56 57 54 N 0807 56 57 54 O 0808 54 56 -- P 0809 56 57 54 Q 080A 56 57 54 R 080B 54 55 -- S 080C 55 56 54 T 080D 56 57 54 U 080E 56 -- 55 V 080F 67 -- 65 W 0810 56 57 55 X 0811 56 57 54 Y 0812 55 56 54 Z 0813 54 -- -- [ 0814 56 -- 54 \ 0815 54 -- -- ] 0816 56 -- -- 0817 55 -- -- _ (underline) 0818 54 -- -- 0819 54 55 -- a 081A 54 55 -- b 081B 54 55 -- c 081C 54 55 -- d 081D 54 55 -- e 081E 53 54 -- f 081F 54 55 -- g 0820 54 55 -- h 0821 52 53 -- i 0822 52 53  53 j 0823 54 55 -- k 0824 52 53 53 l 0825 66 67 65 m 0826 54 55 -- n 0827 54 55 53 o 0828 54 55 -- p 0829 54 55 -- q 082A 53 54 -- r 082B 53 54 54 s 082C 53 54 -- t 082D 54 55 -- u 082E 54 55 53 v 082F 66 67 65 w 0830 54 55 -- x 0831 54 55 -- y 0832 54 55 -- z 0833 54 -- -- { 0834 56 -- -- 0835 54 -- -- } 0836 56 -- -- ~ (tilde) 0837 55 -- -- phantom rubout char After your patched WS.COM or XWS.COM copy has been saved, I suggest renaming it. I call mine PWS.COM for "Patched Word- Star", BUT DON'T RENAME THE OVERLAYS!! TESTING AND FINE TUNING Now that patching is finished, use your new WordStar to put some ^P toggles into a test copy of some text file of 2 or 3 pages. You may wish to change your margins also at this time and reform the paragraphs, because your lines will only be 10/12ths (all right, 5/6ths) as long as before, due to the 10-to-12 pitch change. Even if you don't change your margins, be sure to reform all your paragraphs so that the lines will proportionally space correctly. Then Save and Print your test file with your printwheel of choice. Look for places in your printout where certain characters con- sistently have too much or too little space between them and the adjacent characters. If a character is consistently too wide (too much space), then repatch a value for that character that is one less. If too narrow, add one to the value for the character. NOTE: The left (more-significant) digit of the value controls the character width for micro-justification when the pro- portional spacing feature is not active. It should be left alone and not changed in any way. The right (less- significant) digit is the one that controls proportional spacing character widths and is the one to change for width adjustment. WordStar doesn't like values less than 2 or more than 7 in either digit, so STAY WITHIN THESE TWO LIMITS WHEN FINE TUNING YOUR PATCHES TO YOUR PRINT- WHEEL. --Submitted by Dick Bollinger 1/29/84 ok for places in your printout where certain characters con- sistently have too much or too little space between them and the adjacent characters. If a character is consistently too wide (too much space), then repatch a value for that character that is one less. If too narrow, add one to the value for the character. NOTE: The left (more-significant) digit of the value controls the character width for micro-justification when the pro- portional spacing feature is not active. It should be left alone and not changed in any way. The right (less- significant) digit is the one that controls proportional spacing character widths and is the one to change for width adjustment. WordStar doesn't like vÀN 3YY $FATAL ERROR!$FILE NOT FOUND$INTERRUPTED!$DONE$Now enter: SAVE 8 PROPOR.COM$PROPOR 1.02 (c) Copyright Carl Flarity -- July 10, 1983$.PRN already exists! press [^C] to quit or [RETURN] to continue$6͡ :7DISK ERROR$DISK IS FULL$3YY               r1!]~#$ ͞2 T<\<3!\\$!PR"e>N2g\<( (B\\< 2"!6 #w#w!" z:X % :(X(Y( 26#w#: !~ #~(+4(2  (9 >E >N >P6#6[E(6]#6#2 2"  = >A >!~w#w.:):  (* s#r#"  >  @! $yw* }( :OBMDRB"i`xGyO))))Bʤ >* s#r#" 6#6:ʶ!  8'O O *R0 >> ! *} !")))\*"! "2!"2*"*" * 2%(!(  > O OB"">2 *"*"N#F!4 ͆ K*B04!V(>N(>F(>6 .,:;?!" (>*}*##"^#V*RI*"!5ʯ*&]T))))):O|x24! 4:4:G*"*^#V#" :O*R8 "> :G:(! 4*"*^#V#"*+}(T" ((0 >*„ >( >> :4: 4: . kb#~ #p ~ #o ͞2Î:P L:"(F~# 8(i&͐! ( 8#O O MRB|g}o :!(OD:N(Ri)))B:N( *&͂ }(-P.>:B0 >U:>M:>E:E.:ʹ Ž:>:\<O&2#  # !} (B\~#" :(> 2:E>:y!} *B\ w#"@> ::E )DM)))))DM))))l& ~# (08  0O~#yThis program may be freely copied and distributed on the condition that it not be altered in any way. Reads WordStar text file and reformats for propor- tional spaced printing on an NEC 8023A or C.Itoh Prowriter. Writes new file as .PRN. Modify WordStar USER print commmands as follows ... 06C9h USR1: DB 2, 1Bh, 01h ; ^Q -- Proportional 06CEh USR2: DB 2, 1Bh, 02h ; ^W 06D3h USR3: DB 1, 1Bh ; ^E -- ESC only 06D8h USR4: DB 2, 1Bh, 04h ; ^R Use ^Q to get proportional mode; ^N for 10 CPI If you find this program useful please send a 15 dollar donation. In return I will send further instructions, additional features and hints. Carl Flarity | 1386 Arleen Ave | Sunnyvale, CA 94087$ `i"F & & w# & ͋ « t Y t Y GтWx ͢!o ~Z #N  *. *.  NEXT PC͐ =« f  . ~ Ͷ ʻ .͓ =« f |« }w#Ä >2L͐ ! =« f }ʫ +"MD Å D  !  # PROPOR.DOC 1.02 15-July-83 (Z80 SYSTEM ONLY) PROPOR.COM re-formats WordStar text files so that proportional printing may be used on the NEC 8023A and C.Itoh Prowriter dot matrix printers. PROPOR.COM reads an input file and writes to a file named .PRN that in turn can be printed by WordStar. Only minor modifications are required ... 06B5h PALT: DB 2, 1Bh, 45h 06BAh PSTD: DB 2, 1Bh, 4Eh 06C9h USR1: DB 2, 1Bh, 01h 06CEh USR2: DB 2, 1Bh, 02h 06D3h USR3: DB 1, 1Bh 06D8h USR4: DB 2, 1Bh, 04h Include ^Q to obtain proportional printing, ^A for ELITE (Alternate pitch) and ^N for PICA (normal). I spent a lot of time on this program (too much if you ask my wife) and therefore I request a donation of $15 if you find the program useful. Carl Flarity | 1386 Arleen ave | Sunnyvale, CA 94087 s 1 *. "!!~{o~? !4* >2  # >2 \<{! _s# x *R|000 0xg" 1\ : (D~'(-  (˯A8 [0,('{(! wͯ ,(~'_A8[0>2 ,  ~('_ ( (\!* #" >2 o:\2: (D< X*e" :g2 !KW"e>D2g\2  : (,~˿/( -(A8 {0,(${(!  ,(~A8{0>2 !!     G!M-   )T]))08Åo0$ | /g}Do" " 'R!" Improper entry !$ G* ) [ S s#rx~[0-(/( y< #˯#~- yS A! 4~<(: ȯ2 * ͭ* DOF0G#8 #y * " ! 5(>2 >2  * ͷK ~ : w* ͷ: w2 2 * ͭDOF0G#8, ##y * : w#[ s#r#>w" (>2 >2  * ͷK ~2 ! : 2  * ͷ#~(S2 * ͷ##~(2 ++~o&ͷ#: (## * ͷ~2 * ͷ~o&ͷ##: (* ͷ~2 * ͭF#X~[ ( <~(2 ~ >  #: <2 > 2S * 6* #" K Bʃ;!" > 2|!: W~Ⱥ# N#F* B( C "+##* | | !" !" .R0x2 dR0x2 } 0gh" ! ~ #* 6 #" : <2 ?[ ~0: <2 #S >,2|) ^#VDM) !k ! 4~! (>2>2>22! [ ~#S >2 [ S !!]~# (!e>.~# (6" !ND"e!X"g2|\\<(!R R!!E* ~( N#[ !" bkK B0\(\*B~###{ ~O#WINDEX v2.0 (c) Eric Gans 05/22/85 (WINDEX ? for help) Indexes WS Doc fn.ft to fn.NDX fn.ft [*|#] * = keys in fn.KWD # = keys in file (^PP toggles) / searches no-break space (^O) Maximums: 254 keys, 9999 pages Index of File KWD File not found.Page offset -256 < 9999 (CR=0) >>You have reached the maximum of 254 keywords.Can't create index file. Enter keyword (CR ends) >> [More] Ⱥ# N#F* B( C "+##* | | !" !" .R0x2 dR0x2 } 0gh" ! ~ #* 6 #" : <2 ?[ ~0: <2 #S >,2|) ^#VDM) !k ! 4~! (>2>2>22! [ ~#S >2 [ S !!]~# (!e>.~# (6" !ND"e!X"g2|\\<(!R R!!E* ~( N#[ !" bkK B0\(\*B~###{ ~O#WINDEX v2.0 (c) Eric Gans 05/22/85 (WINDEX ? for help) Indexes WS Doc fn.ft to fn.NDX fn.ft [*|#] * = keys in fn.KWD # = keys in file (^PP toggles) / searches no-break space (^O) Maximums: 254 keys, 9999 pages Index of File KWD File not found;;04-06-85 Eric Gans French Department UCLA Los Angeles, CA 90024 WINDEX.DOC v2.0 Version 2.0 update (05/22/85): A number of features have been added at the request of users, whom I thank for their interest. WINDEX now: - carries all-caps words into the index unaltered (Paul Foote) - permits a negative page offset (Simon Heifetz) - allows tagging keys within the text file with ^PP, and - allows indexing of strings (John-Mark Stensvaag) - allows indexing of (hard-)hyphenated words - uses entire free memory (max of about 11000 page references and a 17 K NDX file for a 60 K system -- e.g., Kaypro-10) The I/O has been speeded up (again), a bug or two corrected, and tabs replaced by spaces in the NDX file, plus a few minor changes. Version 1.2 update (4/6/85): Finds words divided by "soft" hyphens at the end or middle of the line; more efficient I/O for long index files. Version 1.1 update (4/3/85): Fixed bug in v1.0 that forgot to open file to be indexed (!) when keywords entered from console. (Thanks to B. Cardozo for catching this one.) ***** WINDEX creates indexes for Wordstar files written in document mode. It can be used to index a manuscript of any length, including books of up to 9999 pages, with a maximum of 254 keys. The keywords to be WINDEXed can be entered in three modes: 1. (windex [d:]fn.ft) Direct keyboard entry; you will be prompted at the console. The simplest approach for short indexes. 2. (windex [d:]fn.ft * NB: * replaces / used in previous versions) Keywords will be sought in a file fn.KWD on the same drive/user. In creating this file, you need only avoid hyphens and the exotic punctuation marks [\]^_` The character / may be used between words to index strings; it will be treated as the equivalent of a non-break space (^O) in the file. All other characters, including numbers, periods, commas, semicolons or blanks, are permitted as separators: the simplest way is to list the words with a CR after each. Hyphenated words may be indexed (this means that the program will not find indexed words that are contained in hyphenated groups: Big-Mac will not be found in a search for Mac); no other internal punctuation (e.g., apostrophes) is permitted. First or all letters may be capitalized and will remain so in the output (the search function won't pay attention to capitalization). You need not enter the words in order; the program will alphabetize them. The same criteria hold true if you prefer to enter your word list from the keyboard. 3. (windex [d:]fn.ft #) Keywords may be tagged in the file to be indexed. This allows you to create your index as you go along (duplicate entries will be discarded). ^P (entered as ^PP) must precede each keyword. To index strings, separate words by a non- break space (^O, entered as ^PO), which keeps the whole string on the same line. To end the index string, you may enter a second ^P, although any non-alphabetical character except - and ^O will suffice. The maximum string length permitted is 29 characters. The output file (on the same drive) will be fn.NDX. An approximate right margin of 65 will be adhered to; CR's will be added after each line and second and succeeding lines of index entries will be tabbed. This file can be edited with Wordstar and converted if you like to document mode (this doesn't seem appropriate for an index, however). If you have more than 254 keywords, you should divide them alphabetically into two or more groups. (ALPHA.COM will do this for you.) You can then combine the indexes later in alphabetical order using PIP or Wordstar's ^KR command. The current version of WINDEX allocates about 2/3 of the free memory to the page-reference buffer and about 1/3 for the NDX file. This allows (on a 60 K Kaypro-10) for about 17 K for the file and 34 K for the buffer, or about 11000 references at 3 bytes each. (This proportion is based on the fact that many references are multiple appearances on the same page that do not appear in the NDX file.) This should be enough for any normal use of the program (110 references/page in a 100-page manuscript!) In case you somehow do run out of memory, WINDEX will recognize when the CCP is overwritten and do a Warm Boot, but it doesn't check if you go even further. But long before you get to that point, you should divide your keyword list into smaller alphabetical groups and index them separately. As long as you keep the different indexes in alphabetical order (you'll also have to change their names if you keep them on the same disk), you can PIP them together with no internal editing save removal of a few headings. Page offset: You will be prompted for an offset between -255 and 9999 (default = 0). All page numbers will be increased by the offset. This feature allows you to index manuscripts that don't start at page 1 (say, chapters in a book). A negative offset may be used if page 1 is preceded by prefatory material; index entries that come before page 1 will be listed as "-#". Hyphens: Wordstar distinguishes between hard hyphens (those you enter yourself) and soft hyphens (entered for formatting purposes). WINDEX skips over soft hyphens, since they merely break words at the end of lines; hard hyphens are treated as letters in the keyword and in the file. This remains true even when they occur at the end of a line; the difference is that you entered them as part of a hyphenated word. String example: (Console or KWD file) The entry: blurk/zap/zlonk will search the string "blurk^Ozap^Ozlonk", which will appear in print as "blurk zap zlonk" (all words on the same line). To tag this string in your text file, it should appear on the screen as: "^Pblurk^Ozap^Ozlonk^P"; the second ^P can be replaced by a (normal) space. Features: - makes use of a binary tree for maximum search speed (5-6 seconds for a 40K file) - occupies less than 3K on disk Limitations: - won't recognize words with internal punctuation other than hyphens (apostrophes, accents, &c.) - only works with files saved in document mode (it needs this for its page-count feature) - all files (fn.ft, fn.KWD, fn.NDX) must be on same drive Warning: - WINDEX will create a new NDX file each time it is run and delete any previous file of the same name. You must rename old index files you want to save before rerunning the program. Trick: - You can rename an old NDX file as a KWD file, since the program won't notice the numbers following the entries. Before you do this, don't forget to delete the heading within the NDX  file. ***************************************************************** ALPHA.COM v1.0 In order to facilitate finding keywords in your files, I have included my word-sorting program ALPHA in this library. This program uses a binary tree to sort all the words in a file in alphabetical order and gives the number of times (up to 256) each is used (words used more than 255 times will wrap around; this may be changed in a future version but isn't very important for our purposes here.) Entering a / after the filename (i.e., entering: alpha fn.ft /) will limit the word list to capitalized words. Many of these will be The or This, but you will also find all the proper names in your file. ALPHA doesn't create a separate file, but you can print it out (use CP/M ^P, or if you have a Kaypro, my PRINT or BIOSP print-screen patch in EGKTEN.LBR). ALPHA allows internal apostrophes, but not hyphens. (I didn't allow for apostrophes in WINDEX since when you write an index you usually want to include possessives under the possessor: if you are indexing "Smith," you want instances of "Smith's" to be included, not listed separately.) Note to the user: Version 2.0 contains several enhancements suggested by users. If you can think of anything else you'd like to see, let me know--we aim to please. Possibilities: - allowing numbers, etc. in index words - freer string entry options - ??? rposes here.) Entering a / after the filename (i.e., entering: alpha fn.ft /) will limit the word list to capitalized words. Many of these will be The or This, but you will also find all the proper names in your file. ALPHA doesn't create a separate file, but you can print it out (use CP/M ^P, or if you have a Kaypro, my PRINT or BIOSP print-screen patch in EGKTEN.LBR). ALPHA allows internal apostrophes, but not hyphens. (I didn't allow for apostrophes in WINDEX s1# *!_s# x !~ʭo~/ >2\<(p\ѷ’!:(? :< ~~'( _A8 [0 #| ){( [!#| ~_A8[0>2>2 :ʒ!O*)[Ss#ry>S*#"*q#C|**DOF0G#8' #y 4*"*+"( CC*K NFx *utKq#pC*|%!"*##N#Fx(C*NFx(CnfKnfB(8nfB -*N#FC*N#FnfKB(*N#FC*)^#VF#^#̈́*#"KB%>8 G :@2ø~d0_x2{ 02x2!~ # ~0_#)^#V) ) !4~w  ([More] $  { ALPHA v1.0 (c) Eric Gans 03/17/85 Alphabetizes & counts words Format: alpha [fn.ft] [/] /=Caps only Input from console if no file entered $ >>$ Alphabetized List $ $F!9"1*"s:g.:g*og."qD!*|i"*s~#"s~^# W:**qL OWS -- Version 1.0 (2 July 82) Copyright 1982 Michael M Rubenstein $1>*@R0"T!A"*V#Ns#FrC]*"?!>"*. _Ns#FrC.h"< :( !~6( ѷ !WS COMWS.COM not found $"* #" **T"s1!~6('! 6:^ ͩ(!N6ͦqͦ_ͩ2{{!>=*T"s1!~6('! 6:^  @H  $ $ows -- Osborne 1 WordStar Filter copyright 1982 Michael M Rubenstein This document and the accompanying program may be freely distributed provided that the copyright notice is retained and no fee is charged. ows eliminates the annoying jumping from side to side when one scrolls vertically in WordStar on the Osborne 1. To use ows, just enter the command "ows" rather than "ws". Parameters may be used as for "ws". When using ows, ws.com must be on the currently logged drive or on drive a. The usual rules for accessability of WordStar overlays must be followed. END OF DOCUMENT y logged drive or on drive a. WINDEX COMIJKWINDEX DOCDLMNOPQRSTALPHA COMUOWS COMVOWS $$$--FOGCPM009 WS0.COM and WS15.COM ==================== These are stand alone WORDSTAR loader programs created by SETDRU They allow the use of WORDSTAR and any .OVR file anywhere on a hard disk drive machine. ////////////////////////////////////////////////////// WS0.COM will load WS.COM, WSMSGS.OVR, WSOVLY1.OVR, or any .OVR overlay from USER AREA 0 WS15.COM will load WS.COM, WSMSGS.OVR, WSOVLY1.OVR, or any .OVR overlay from USER AREA 15 ////////////////////////////////////////////////////// Once the files are placed on either USER 0 for normally configured Kaypro 10's or USER 15 if using ZCPR2 enhanced operating system, you simply REName WS0 or WS15 to whatever you desire. I use the filename W/S.COM on my KP10 to destinguish it from the original WS.COM Steve Sanders (Sysop) PRO-COM DATABASE (813) 937-3608 300/1200 í,WS COMWS COM????????OVR ***SETDRU1***Copyright 1983 Michael M Rubenstein1*!h! l :2k 2g :_*"* " *"*$"$*7"7*?"?*N"N*b"b*o"o*t"t*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*&"&*)")*/"/*5"5*="=*H"H*S"S*Z"Z*^"^*d"d! !1*k<k!(k :g_!Z"!y(9 (0()  ((! " # ( 72is1!~(E2j ##:i( ~? 2j -#i:j(͒({}%{ yOڒ?ʒs1 ͒2g~2h_! ^͒+~͒y(:h :g_͒{ f eí ETDRU1***Copyright 1983 Michael M Rubenstein1*!h! l :2k 2g :_*"* " *"*$"$*7"7*?"?*N"N*b"b*o"o*t"t*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*&"&*)")*/"/*5"5*="=*H"H*S"S*Z"Z*^"^*d"d! !1*k<k!(k :g_!Z"!y(9 (0()  ((! " # ( 72is1!~(E2j ##:i( ~? 2j -#i:j(͒({}%{ yOڒ?ʒs1 ͒2g~2h_! ^͒+~͒y(:h :g_͒{ f eí,WS COMWS COM????????OVR ***SETDRU1***Copyright 1983 Michael M Rubenstein1*!h! l :2k 2g :_*"* " *"*$"$*7"7*?"?*N"N*b"b*o"o*t"t*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*&"&*)")*/"/*5"5*="=*H"H*S"S*Z"Z*^"^*d"d! !1*k<k!(k :g_!Z"!y(9 (0()  ((! " # ( 72is1!~(E2j ##:i( ~? 2j -#i:j(͒({}%{ yOڒ?ʒs1 ͒2g~2h_! ^͒+~͒y(:h :g_͒{ f eí ETDRU1***Copyright 1983 Michael M Rubenstein1*!h! l :2k 2g :_*"* " *"*$"$*7"7*?"?*N"N*b"b*o"o*t"t*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*&"&*)")*/"/*5"5*="=*H"H*S"S*Z"Z*^"^*d"d! !1*k<k!(k :g_!Z"!y(9 (0()  ((! " # ( 72is1!~(E2j ##:i( ~? 2j -#i:j(͒({}%{ yOڒ?ʒs1 ͒2g~2h_! ^͒+~͒y(:h :g_͒{ f e!9" 1  FILT - Irv Hoff - copyright 1985 - 04/27/85 :] ) To use: B>FILT A:HELLO.TXT 1) B>FILT HELLO.TXT A:NAME.NEW 2) 1) uses original name for new file, original now named .BAK 2) original file stays intact, new file has new name):m Z!\  4 !\.  4. e!l 42|2 \<œ ++ SOURCE FILE NOT FOUND ++)2 2 !"A !"C  <File exists - erase? (Y/N):  ʻ_Y  [Returning to CP/M]!    x” û> >   ͅ> > =!j ~ NŽ:J ~Ž:E :L :K > ÷:M <2M :G <2G :M E:E <:L E2M > 2M >  } } p2M :G 2G >  6Y2G 2K 2L 2M .' :K /2K ;·:L ·:K ·<2L :G <2G :M > X=2M X# j :H > 2I ,7O:I y } -> > *\ #"\ y*N #"N *P #"P *T #"T :F 3L> *V #"V *X #"X :F 3>-*` #"` :F 3> {*h #"h *Z #"Z *b #"b *f #"f  ڰ |ħ{0 :G ·:F 3ʷ2#~_P#~_A#~ > X*T #"T *R #"R :F 2ʷ \ * ~#4*Z : *Z ͧ> ̗ ̏ ̟*A *C }|!"C *A {z*?  ª*C "C | DISK FULL: OUTPUT!"C *? *C #"C ~#  >> ++ ABORTED, OUTPUT FILE DELETED ++2H Ĵ *Z ͧ *C }h"A >X\\ <¤ CANNOT CLOSE OUTPUTä *Z ͧ lines *^ ͧ original spaces *d ͧ original tabs *b ͧ current spaces *f ͧ current tabs *T ͧ form feeds :F 3c deletedn present *V ͧ high-order bits zeroed *P ͧ imbedded control chars. deleted *\ ͧ orphan LF's fixed *h ͧ trailing spaces deleted :F 3ʾ  *R ͧ dot commands :F 2M retainedY deleted  *N ͧ soft CR's fixed *X ͧ soft hyphens fixed *` ͧ space breaks fixed : $)!\ 4!] 4!\.  4.  !] 4 )_ 1) Wordstar, normal files 2) Wordstar, w/dot commands 3) ASCII text files select:  ʲ 1ʲ 2ک 4ҩ 2F ò   :E  tabs (y/n):  _YN² 2J $$$ BAK BAK<¤ CANNOT CLOSE OUTPUTä *Z ͧ lines *^ ͧ original spaces *d ͧ original tabs *b ͧ FILT7 - Sets tabs in ASCII text or .ASM souce code files 04/27/85 COPYRIGHT 1984, 1985 Irv Hoff W6FFC This program filters several types of unwanted characters from various types of ASCII files, including those written by the Wordstar word pro- cessor program. These include unwanted control characters, high-bits set, soft-hyphens, soft-carriage returns, space-breaks, dot commands, etc. It also removes all tabs, then retabs automatically - since this involves not adding tabs in DB strings, the user needs to type a "T" for any sort of ASCII text file, or any other character (including a RETURN) for any source code .ASM file. It has the following choices: 1) Wordstar, normal files 2) Wordstar, w/dot commands 3) ASCII text files select: tabs (y/n): 1) Wordstar files, normal. Insures any file generated by the Wordstar word processor can be used on any other system. (Also selected by default with RETURN.) 2) Wordstar files, retains all dot commands - some host systems such as Compuserve use "dots" (periods) in the first column for enabling blank lines. This selection is primarily for those users. 3) normal ASCII text files. NOTE: Although option 1 removes dot commands, it changes ".pa" into FF (form feed) characters. A comprehensive summary of what the program found and what it did is presented upon completion. A display is provided showing the progress of the program. This is controlled by byte 103, which can easily be changed by DDT. Change to 0F (every 16 lines), 1F (every 32 lines) or 3F (every 64 lines) to match the speed of your equipment. Then save 12 pages. The following is a general description of all the options: NORMAL FEATURES: --------------- 1) counts all current tabs, then removes all tabs 2) removes any unneeded trailing spaces or tabs 2) places tabs every 8 columns wherever possible as long as there is more than 1 space. (In Text mode, asks if you want any tabs or not.) 3) optionally selects between ASCII text and .ASM source code a) If .ASM is selected, does not attempt to put new tabs in quoted DB strings and will replace a single space with a tab until encountering a semicolon delimiter. WHY THE TWO CHOICES: ------------------- The .ASM source code version will not compress spaces into tabs between "quotes", in any DB strings. As the ASCII text version will be processed by a normal display and/or printer routine it does compress spaces, wherever possible. DISPLAYS UPON COMPLETION: ------------------------ total lines in the file original spaces original tabs current spaces current tabs form feeds present high-order bits zeroed imbedded control chars. deleted orphan LF's fixed trailing spaces deleted (For Wordstar:) dot commands deleted soft CR's fixed soft hyphens fixed space breaks fixed - notes by Irv Hoff W6FFC --------------------------------------------------------------------- To use: B>FILT HELLO.TXT (1) B>FILT HELLO.DOC NUNAME.DOC (2) B>FILT A:HELLO.TXT (3) B>FILT A:HELLO.ASM B:NUNAME.ASM (4) (1) Sets tabs in a file named HELLO.TXT. When finished the original file is named HELLO.BAK and the new file has the normal name. (2) The original file keeps the original name. The new file is now named NUNAME.DOC. (3) Just shows you can use two disks. The backup file will be on the same disk as the original and assumes the original name.. (4) The original file remains intact, the new file is on another drive and is named NUNAME.ASM. --------------------------------------------------------------------- 04/27/85 Accepts lines up to 255 characters long (vice 128). Insures last line has CR-LF to allow normal processing. - Irv Hoff 03/07/86 Added tab option if in Text mode. Fixed ERXIT so external file is not deleted unless a 'Y' is used. - Irv Hoff 11/20/84 Initial version, similar style to FORM5, NEAT5 and TABS5. - Irv Hoff ---------------------------------------------------------------------  and the new file has the normal name. (2) The original file keeps the original name. The new file is now named NUNAME.DOC. (3) Just shows you can use two disks. The backup file will be on the same disk as the original and assumes the original name.. (4) The original file remains intact, the new file is on another drive and is named NUNAME.ASM. --------------------------------------------------------------------- 04/27/85 Accepts lines up to 255 characters long (vice 128). Insures last line has CR-LF to allow normal processing. - Irv Hoff 03/07/86 Added tab option if i*[!7! ! ! !~J ! ͩ$_!! ͩ$_!! ͩ$͎/This program takes WordStar or other text filesͯ$,%_!! ͩ$:and strips them of print control characters, dot commands,ͯ$,%_!! ͩ$*:and characters with the eighth bit set. This enables themͯ$,%_!! ͩ$p2to be used in telecommunications, electronic mail,ͯ$,%_!! ͩ$ͪ&and by other word processing programs.ͯ$,%_!! ͩ$_!! ͩ$Enter input file name: ͯ$,%!!ͩ$!P͠!l!! ͩ$_!! ͩ$%Enter output file nameͯ$,%_!! ͩ$r9(this will write over any existing file with this name): ͯ$,%!!ͩ$!P͠!l!!!.! ͩ$_!! ͩ$8You may not use the same name for both output and input!ͯ$,%_!!!B!!! !!ͪ ! !! ! !͏ ! ͩ$_!! ͩ$ithe file is being processed....ͯ$,%_!!}2X!}2W!!X}/}!!}/o:W&o}/o}L!ͩ$! O!: &o!Y$: &o}2 :X&o: &o!.&$}!}2W:W&o}/I:X& !}2X: &o!7͖ͪ I! ͩ$: &oͯ$%Ò!ͩ$l!:W&o}/l! ͩ$_!!}2X!}2WÀ!!!Y͔! !!Y͔! ͩ$_!!! ͩ$ͯ$,%/ has now been processed and written to disk as ͯ$,%!ͯ$,%!.ͯ$%_!͚*}v^#V#{re! 6#6#6#6! 6#6!&##"&!9" &"&>2 !00" !6# x³!"2 "- " " >21 2 >29 2 > 2 ! "6 !~ " !" !+" Ò ͝" " ͣ͵#* ^!&$R * @:PASTMP00.$$$!$! !* ! !͆%! !! !^#s! !^!9Y$C ! !!0s! !! !^#s* * * * ! !!%* !&$җ * @!s* }/o|/g#" å * @!s* <!s* ;!s* 8!s!* s#r* 6!s#r* 9* s#r* =* s#r* 4* s#r* ?!s* ͜}/J !!s#rÚ * ͙X Ú * * t!!* Ͳ#s#r!^#V!n$Қ !!s#rí ͝""ͣ͵#*8^!&$| **!͔*!&$| ! ͩ$_!! ͩ$& Unable to automatically close: ͯ$,%*ͯ$,%C in RESETͯ$,%_!! ͩ$_!! ͩ$p Program abortedͯ$,%_!͚*! !!%*8!s*!&$ *}/o|/g#"*@!s *@!s*<!s*;!s*! !s!*s#r*?!s*A!s*8!s*9*s#r*4*s#r*=*s#r*^!&$*͜}/o}ҥ!!s#r*͙ҶÂ!!*Ͳ#s#r!^#V!n$f!!s#r*<!s*;!s*4*s#r*!n$c*6!s#r*@~`!^#V!^#V4^#VHc%Â*<!s*;!sÚÖ͝"""ͣ͵#!*s#r*8^!&$*9*6^#Vs#r͗*?^!n$*@^}Ұ*4^#V!͎$Ҁ*!!s*9!s#r!!+"#"*#"*+"|}͗dí**4^#V!%*9!s#r͗*?^!&$*!!s*9!s#r͗#*8^!Y$#*9*6^#Vs#r͗Õ*8^!&$*8^!&$}x!!*Ͳ#s#r*s#rÄ*!s#r*8!s͵#͝"""ͣ*8^!Y$**t!!s#r*!s#r*8!sc͝}2ͣ:&o!a=$:&o!zͅ$}Q:&o!}o|g}2:&o}2:&o͝"""ͣ!!s#r*^!n$*!^! &$}Ҽ*!!ͳÁ**!$*^!n$!@}2! #!͍%!  #!͍%*!^!:&$G!"*!^}2M!"*"!"**^!. !: ͖ }/o**͎$}o**^ͅ$}!*+**^s*#"*#"]**^!.&$**^ͅ$}^*#"!"*!͎$**^ͅ$}^!*+**^s*#"*#"*!!%*!:&o!@{ozgs!*!!͆%!*! !͆%*8!s͝"Q"Sͣ*Q!}/o|/g#&$6!;^}2ME*S;^}2M:M&o[͝""ͣ*!}/o|/g#&$ґ!<^}2à*<^}2:&oö͝"""$"&ͣ*&*$*"*&*$*&^*$*"!{ozg{ozg͆%*&!*&^*"{ozgs.͝}2oͣ!^#V!:o&os!^#V!^#V4^#Vqw͝""ͣ͵#!!*Ͳ#s#r!!s#rø!^#V8^!Y$!^#V!^#V4^#VH!^#V!^}2A7!^#V!^}2A!^#V!^#V4^#VH:A&oK͝"h"jͣ*j;!s!*js#r*j<~Ґ*j;!sg%*j@~g*j<*j!^!&$*j<^}os*j!^! &$}2l:l&o*j<^}*j;!s:l&o*j8^!&$}7%*j<^*j;^}g*j!! st͝""ͣ!*s#r͗ßI͝"ͣ!}2*ͼCON:.*8!s!}2A*LST:.*8!s!}2A*KBD:.*!TRM:.}A*8!s!}2:&o͝"ͣ!}2!! !~J *^!Y$*^!͎$}ғ!*^+"#" *#"* +" |**^!͖ͪ }/í!}2:&o(!^#V=!!͆%!^#V8^!&$*!!Ͳ#s*^! &$Ґ!! Ͳ#"*^!&$!! Ͳ#"!!Ͳ#"Æ!^#V8^!&$*!!Ͳ#s*^!n$Æ!^#VA~-!^#V<!sÆ!!^#V9^#V+"#"*#"*+"|o!^#V"*?^!&$*?!s*A^}/!*BͲ#"!!*Ͳ#s#r!^#V!n$*A!s*A~.*!s*<!s*6!s#r͵#ÆN**B*?^^s*?*?^#s*#"S!^#V6!s#r͵#Ú<͝}2ͣ!^#V"*?^!&$!!*BͲ#s#r!!*Ͳ#s#r*?!s*B*?^:&os*?*?^#s!!s#r!^#V=!!͆%!^#V8^!Y$z!^#V"!*9^#V+"#"*#"*+"|w*^}2:&o! &$*8^!&$$!:&oͲ#":&o! &$!!! Ͳ#"m!:&oͲ#"*8^!&$m:&o! &$m!! Ͳ#"*#"å!!^#V9^#V+"#"*#"*+"|*^͔*#"àm*"*"$Y${ozg##*$!*$"u&<!*!7&4<&<<4&4<&<4&44<N2GڅAyʒ#‰:"*"!9 ͍%*"! 9^#V!9"!9^#V!9 ͍%!"9* 6#"E!"G!!9*G!|  *E!:G!_!9:G!_!B ~Gw @"E!"M!"K!!9*K!| "G!*M!| } ʏ  *G!#"G!*M!{zz  *E!"E!!9DM! 9^#V"G!| }_F:G!_!B ~ !"9*E! "E!!9! 9 w# ! 9*E!"E!!9! 9 /w#!! 9*E!"E!!9! 9 w#3!! 9*E!"]! %q*]! % %*;~! %l!6*8~ %*~ %ɯ2#"#}2"2"*8~"!"͎#:"!:"!*<6!"!$*8~ " !%*;6> *#!">2"*; ~!!."* :"C"T"#:"<2"*; ~%"!y c"q:#<2#6 :"<2":#<2#"#c"!"#5Ñ#͝"#ͣ! *#Ͳ#"#ø##͝"#"#ͣ*#M*#o&"$*$"#*#!!Ͳ#"$~##$k$V$ʋ$:$Â$͔$}3$|{$!`i͔$zO$}|{$3${$3$͔$zO${z{$3$͔$}{$|3$!`i͔$@$͔$\$&}o&}o"" " !" !+" ɯ2%"%"%YPz %$$>2%}2%%!(%* "O%"Q%"S%#+n&*S%*Q%U%*O%|n%}o|gn%#%{N%#zu%Ò%xʡ%~# x—%ï%x% + +~+ x¹%{q#{%%Y%}-- %-%* !"#5Ñ#͝"#ͣ! *#Ͳ#"#ø##͝"#"#ͣ*#M*#o&"$*$"#*#!!Ͳ#"$~##$k$V$ʋ$:$Â$͔$}3$|{$!`i͔$zO$}|{$3${$3$͔$zO${z{$3$͔$}{$|3$!`i͔$@$͔$\$&}o&}o"" " !" !+" ɯ2%"%"%YPz %$$>2%} before running this program, or you 147 'may find B is flagged as Read Only. 148 '----------------------------------------------- 149 'I've included copious comments to help novice 150 'programmers understand what's happening. 151 '----------------------------------------------- 598 ' Open source file as random access file #1 599 ' with record length 1 byte (= 1 character) 600 OPEN "R",#1,"B:FILEFROM.DOC",1 550 ' Specify variable length (bytes) and name by 560 ' which characters will be known when pulled 570 ' from file #1 700 FIELD #1, 1 AS OLDCHARACTER$ 710 ' Now open destination file same way as #2 800 OPEN "R",#2,"B:FILETO.DOC",1 810 ' -and specify its variable name the same way 900 FIELD #2, 1 AS NEWCHARACTER$ 950 ' Start counting characters from start of file 1000 CHARACTERNUMBER=0 1100 CHARACTERNUMBER=CHARACTERNUMBER+1 1150 ' Pull character from old file 1200 GET #1,CHARACTERNUMBER 1250 ' Not allowed by MBASIC to use name under 1260 ' which variable was pulled from file for 1270 ' anything else. So transfer to another 1280 ' variable name while manipulating it. 1300 TEMPORARY$=OLDCHARACTER$ 1350 ' If it's a hard , change to a soft one. 1400 IF ASC(TEMPORARY$)=&H0D THEN TEMPORARY$=CHR$(&H8D) 1450 ' Now assign the character to the variable name 1460 ' we declared when opening the second file 1500 LSET NEWCHARACTER$=TEMPORARY$ 1547 ' and push it into the second file. 1600 PUT #2,CHARACTERNUMBER 1650 ' Text files usually end with CTL-Z so check 1660 ' for this value and end when it's found. 1700 ENDTEST=ASC(TEMPORARY$) 1800 IF ENDTEST=&H1A GOTO 2000 1850 ' If it's not the last character, get another 1900 GOTO 1100 1910 ' If it's the last character, close both 1930 ' files and shut down. 2000 CLOSE #1 2100 CLOSE #2 2200 END 0 CHARACTERNUMBER=CHARACTERNUMBER+1 1150 ' Pull character from old file 1200 GET #1,CHARACTERNUMBER 1250 ' Not allowed by MBASIC to use name under 1260 ' which variable was pulled from file for 1270 ' anything else. So transfer to another 1280 ' variable name while manipulating it. 1300 TEMPORARY$=OLDCHARACTER$ 1350 ' If it's a hard , change to a soft one.!9" 1 7 TABS - Irv Hoff - copyright 1985 - 04/27/85 :] )7 To use: B>TABS A:HELLO.TXT 1) B>TABS HELLO.TXT A:NAME.NEW 2) 1) uses original name for new file, original now named .BAK 2) original file stays intact, new file has new name,:m Z!\ D!\ De!lD2|2\<œ7 ++ SOURCE FILE NOT FOUND ++,22!"!"<7File exists - erase? (Y/N):  ʻ_Y 7 [Returning to CP/M]$7  xƒ ç> >  ʹ í> > ! ~ 7Ž: ~Ž: : : > ò: <2 : <2 : .: %: .2 > 2 >  } Y 2 : 2 > * #" :{7 * > ͛2 2 2 2 '›: /2 ;²: ²: ²<2 : <2 : > M=2 M#  : > ,O* #"   |{0͛\7 * ~͛#~8~#D Z* #" h* #" **}|!"*{z*ª*"|7 DISK FULL: OUTPUT!"**#" //7 ++ ABORTED, OUTPUT FILE DELETED ++2 Ġ7 * 7 *}Y">MM\<“7 CANNOT CLOSE OUTPUT7 * 7 lines in file * 7 original spaces * 7 original tabs * 7 current spaces * 7 current tabs * 7 trailing spaces deleted :$,!\D!]D!\ D!]D,_ $$$ BAK BAK  2 2 2 '›: /2 ;²: ²: ²<2 : <2 : > M=2 M#  : > ,O* #"   |{0͛\7 * ~͛#~8~#D Z* #" h* #" **}|!"*{z*ª*"|7 DISK FULL: OUTPUT!"**#" //7 ++ ABORTED, OUTPUT FILE DELETED ++2 Ġ7 * 7 *}Y">MM\<“7 CANNOT CLOSE OUTPUT7 * 7 lines in file * 7 original spaces * 7 original tabs * 7 current spaces * 7 current tabs * 7 trailing spaces deleted :$,!\D!]D!\ D!]D,_ $$$ BAK BAK  TABS7 - Sets tabs in ASCII text or .ASM souce code files 04/27/85 COPYRIGHT 1984,1985 Irv Hoff W6FFC This program inserts new tabs wherever possible into ASCII text files or .ASM source code files. It counts the original tabs as well as the new tabs. When the file is finished it then displays the original and current tab count. The tabs are placed for standard CP/M intervals of "every eight" columns. It pads the end of the file with CTL-Z (end of file) characters. It also removes any trailing spaces or tabs. It optionally selects between ASCII text or .ASM source code files. The text version does not put a tab if there is only one space, as nothing would be gained. The .ASM source code version puts a tab at any location it can until it comes to a semicolon (delimiter for text comments). It will still tabulate in the text comments, but does not substitute a tab for a single space as nothing would be gained. The .ASM version also protects the space between 'quotes' and does not re- place any spaces with tabs. TABS is likely the most intelligent of any such program. NOTE: The line count progress is displayed near the left margin. This is controlled by byte 0103. Change to 0F (every 16), 1F (every 32) or 3F (every 64) lines to match the speed of your equiment. Then save 8 pages. NORMAL FEATURES: --------------- 1) counts all current tabs, then removes all tabs 2) removes any unneeded trailing spaces or tabs 2) places tabs every 8 columns wherever possible as long as there is more than 1 space. 3) optionally selects between ASCII text and .ASM source code a) If .ASM is selected, does not attempt to put new tabs in quoted DB strings and will replace a single space with a tab until encountering a semicolon delimiter. DISPLAYS UPON COMPLETION: ------------------------ total lines in the file original spaces original tabs current spaces current tabs trailing spaces deleted WHY THE TWO CHOICES: ------------------- The .ASM source code version will not compress spaces into tabs between "quotes", in any DB strings. As the ASCII text version will be processed by a normal display and/or printer routine it does compress spaces, wherever possible. - notes by Irv Hoff W6FFC --------------------------------------------------------------------- To use: B>TABS HELLO.TXT (1) B>TABS HELLO.DOC NUNAME.DOC (2) B>TABS A:HELLO.TXT (3) B>TABS A:HELLO.ASM B:NUNAME.ASM (4) (1) Sets tabs in a file named HELLO.TXT. When finished the original file is named HELLO.BAK and the new file has the normal name. (2) The original file keeps the original name. The new file is now named NUNAME.DOC. (3) Just shows you can use two disks. The backup file will be on the same disk as the original and assumes the original name.. (4) The original file remains intact, the new file is on another  drive and is named NUNAME.ASM. --------------------------------------------------------------------- 04/27/85 Accepts lines up to 255 characters long (vice 128). Insures last line has CR-LF to allow normal processing. - Irv Hoff 03/07/85 Fixed ERXIT so external file is not deleted unless a 'Y' is used. - Irv Hoff 11/20/84 Initial version, similar style to FILT5, FORM5, and NEAT5. - Irv Hoff --------------------------------------------------------------------- riginal file is named HELLO.BAK and the new file has the normal name. (2) The original file keeps the original name. The new file is now named NUNAME.DOC. (3) Just shows you can use two disks. The backup file will be on the same disk as the original and assumes the original name.. (4) The original file remains intact, the new file is on another  TOPIC : FILT programs - FILTA, FILTB, FILTW and FILTWC FROM : IRV HOFF W6FFC DATE : 04 MAR 84 FILTA - Filters ASCII text files. Removes high order bits, control characters other than CR, LF, FF or TAB. Changes any lone LF to CR-LF. Ignores consecutive LF characters. Option on retaining FF characters. FILTB - Filters BASIC files. Same as FILTA, but retains LF-CR which some BASIC editors insert for lines longer than would normally fit on a CRT screen. (This combination is not handled as a normal EOT by BASIC.) WARNING: The next two files remove WORDSTAR "dot commands". They will also delete ALL lines starting with a period. FILTW - Filters WORDSTAR document mode files. Handles CR and LF like FILTA. Removes dot commands, retaining FF if desired. (Optional like on all four programs.) Also converts "soft hyphens" (1FH) to normal hyphens (2DH) and "non-break-spaces" (0FH) to normal spaces (20H). FILTWC - Filters WORDSTAR document mode files. Same as FILTW except leaves all CR and all LF intact in whatever way they originally appeared. NOTE: All these programs retain any FF (form feed) char- acters that may be present. If those are not wanted, use PIP.COM and the [F] option at any time. If no FF are wanted change the following. (The three-byte address by-passes the "xx form feeds retained" line.) FILTA 03D9 08 04 to DB 03 SAVE 6 04FC 2A 84 06 to C3 1D 05 FILTB 03DE 1F 04 to E0 03 SAVE 6 0513 2A 9E 06 to C3 34 05 FILTW 0419 B4 04 to 77 04 SAVE 7 044F B4 04 to 77 04 05CA 2A 96 07 to C3 EB 05 FILTWC 0417 9C 04 to 75 04 SAVE 7 044D 9C 04 to 75 04 05AF 2A 56 07 to C3 D0 05 These four programs are written in assembly language. They are considerably faster than the other two programs included in the list be-  low. In addition they provide an excellent summary when finished, with a typical example shown, using FILTW on a WORDSTAR document mode file: 298 input lines read 276 output lines with: 2272 high-order bits deleted 162 CTL-characters deleted 22 dot commands removed 2 form feeds retained 9 soft hyphens fixed 4 space breaks fixed 3 orphan line feeds On this program, FILTW took 16 seconds including the time to show the summary. UNSOFT took 43 seconds, but there is so much disk activity the time varied from 43-61 seconds, depending where on the disk the new file was being placed. PURETEXT took 104 seconds with so much disk ac- tivity it sounded like something was coming apart. Both the UNSOFT and PURETEXT programs did a warm reboot when complete, the above programs return immediately to CCP, again minimizing disk activity. Other filter programs do not show such a progress report to let the user know the results - such a summary will "spoil you forever". This series also has a superior feature over other filter programs - only one name is needed on the command line, although two can be used: A>FILTW HELLO.TXT (1) A>FILTW HELLO.TXT NUNAME.DOC (2) B>A:FILTA HELLO.TXT (3) B>FILTWC A:REPORT.DOC (3) B:A:FILTB A:FILE.BAS C:NEWFILE.BAS (3) 1) normal method. When finished, renames the original to .BAK and the new file to the original name. Saves lots of time. 2) makes a second file called NUNAME.DOC while keeping the original HELLO.TXT file intact. 3) The files need not be on the same disk. Table of various filter programs and how they handle CR and LF chars. ORIGINAL > = => >>= >=== ==> >=>>>= FILTWC > = => >>= >=== ==> >=>>>= FILTA >= >= >=>= >=>= >= >=>= >=>=>=>= FILTB >= => => >=>= >= =>=> >=>=>=>= FILTW >= >= >=>= >=>= >= >=>= >=>=>=>= UNSOFT >= >= >=>= >= >= >=>=>=>=  PURETEXT >= *= =>= >= >== ==> >=>=>= * (swallowed the character previous to the =) (UNSOFT trashed the single = completely) > is carriage return = is line feed  B>A:FILTA HELLO.TXT (3) B>FILTWC A:REPORT.DOC (3) B:A:FILTB A:FILE.BAS C:NEWFILE.BAS (3) 1) normal method. When finished, renames the original to .BAK and the new file to the original name. Saves lots of time. 2) makes a second file called NUNAME.DOC while keeping the original HELLO.TXT file intact. 3) The files need not be on the same disk. Table of various filter programs and how they handle CR and LF chars. ORIGINAL > = => >>= >=== ==> >=>>>= FILTWC > = => >>= >=== ==> >=>>>= FILTA >= >= >=>= >=>= >= >=>= >=>=>=>= FILTB >= => => >=>= >= =>=> >=>=>=>= FILTW >= >= >=>= >=>= >= >=>= >=>=>=>= UNSOFT >= >= >=>= >= >= >=>=>=>= !9"1 FILTA - ASCII file filter :]  To use: B>FILTA A:HELLO.TXT 1) B>FILTA HELLO.TXT A:NAME.NEW 2) 1) uses original name for new file, original now named .BAK 2) original file stays intact, new file has new name$:m &!\) 1!l)2|2I\< ++ SOURCE FILE NOT FOUND ++$*}*}|!"*}{z*{)¨*"z  DISK FULL: OUTPUT$!"*{*#"ɯ252I!@"}!")) *#": *#"*#"> e> 2e,ŒP*}#"}>e)eˆ)<  CANNOT CLOSE OUTPUT$)  *~#~~#_  |{0 $$$ BAK BAK@) *#": *#"*#"> e> 2e,ŒP*}#"}>e)FILTB A:HELLO.BAS 1) B>FILTB HELLO.BAS A:NAME.NEW 2) 1) uses original name for new file, original now named .BAK 2) original file stays intact, new file has new name$:m +!\C 6!lC 2|2c\< ++ SOURCE FILE NOT FOUND ++$**}|!"*{z*C­*"  DISK FULL: OUTPUT$!"**#"ɯ2O2c!@"!"CC<4  NO DIR SPACE: OUTPUT$Input and output files open \ʎ.͢++ SOURCE FILE READ ERROR ++$!~.ʥ*#"~  *#"   *#"> *#"': '*#"> j> : '*#"> j> 2j,‘U*}:">j.Cj¢C<  CANNOT CLOSE OUTPUT$C  *~#~~# _ * |!{0 $$$ BAK BAK@CC<4  NO DIR SPACE: OUTPUT$Input and output files open \ʎ.͢++ SOURCE FILE READ ERROR ++$!~.ʥ*#"~  *#"   *#"> *#"': '*#"> j> : '*#"> j> 2j,‘U*}:">j.CFILTW A:HELLO.TXT 1) B>FILTW HELLO.TXT A:NAME.NEW 2) 1) uses original name for new file, original now named .BAK 2) original file stays intact, new file has new name$:m )!\7 4!l72|2W\< ++ SOURCE FILE NOT FOUND ++$**}|!"*{z*7«*"}  DISK FULL: OUTPUT$!"**#"ɯ2C2W!@"!"77<2  NO DIR SPACE: OUTPUT$Input and output files open \ʌ͖++ SOURCE FILE READ ERROR ++$!~ʣ*#"~w: ʃ.,:+*#"*#"> h>2ü_:<2Pʼ>2üA¼*#"> ô ¼22ü2 Ҵ ʗ ʴ Q*#"> ôd*#"> ôw*#">-ô*#"ü: ʼ*#"à*#"*#"> h2> 2h,S*}">h7<  CANNOT CLOSE OUTPUT$Function complete. * input lines read * output lines with: * high-order bits deleted * CTL-characters deleted * dot commands removed * form feeds retained * soft hyphens fixed * space breaks fixed * orphan line feeds:@$!\X!]i!\x xX!]H7*}¢">h–7<  CANNOT CLOSE OUTPUT$7  *~#~~#_  |{0 $$$ BAK BAK @2üA¼*#"> ô ¼22ü2 Ҵ ʗ ʴ Q*#"> ôd*#"> ôw*#">-ô*#"ü: ʼ*#"à*#"*#"> h2> 2h,S*}">h7<  CANNOT CLOSE O!9"1͸ FILTWC - Wordstar file filter :] ͧ To use: B>FILTWC A:HELLO.TXT 1) B>FILTWC HELLO.TXT A:NAME.NEW 2) 1) uses original name for new file, original now named .BAK 2) original file stays intact, new file has new name$:m ,!\ 7!l2|2\<ͧ ++ SOURCE FILE NOT FOUND ++$*Q*S}|!"S*Q{z*O®*S"SÀ  DISK FULL: OUTPUT$!"S*O*S#"Sɯ2 2!@"Q!"S<5  NO DIR SPACE: OUTPUT$͸Input and output files open \ʏʨ\++ SOURCE FILE READ ERROR ++$!~ʨʦ*^#"^~u:U ʖ.*:`)*\#"\*X#"X>2Uá_:U<2UPʡ>2UáA¡*V#"V> Ü ¡2U2`á2` Ҝ ʁ ʜ O*V#"V> Üb*g#"g> Üu*e#"e>-Ü*Z#"Zá*X#"X*a#"a> Ü2`> k,’V*S}´"Q>k¨<  CANNOT CLOSE OUTPUT$͸Function complete. *X͸ input lines read *a͸ output lines with: *^͸ high-order bits deleted *Z͸ CTL-characters deleted *\͸ dot commands removed *V͸ form feeds retained *e͸ soft hyphens fixed *g͸ space breaks fixed:$­!\!]/!\> >!]í*S}h"Q>k\<Ÿ ß CANNOT CLOSE OUTPUT$ ͸ *~#~¹~#_  |{0 $$$ BAK BAK@ READ ERROR ++$!~ʨʦ*^#"^~u:U ʖ.*:`)*\#"\*X#"X>2Uá_:U<2UPʡ>2UáA¡*V#"V> Ü ¡2U2`á2` Ҝ ʁ ʜ O*V#"V> Üb*g#"g> Üu*e#"e>-Ü*Z#"Zá*X#"X*a#"a> Ü2`> k,’V*S}´"Q>k¨<  CANNOT CLOSE OUTPUT$͸Function complete.Ͳ ** HARDSOFT (version 1.1) by Kenneth M. Toy. ** $ Copyright (c) January 30, 1984, San Diego, California, all rights reserved. Calling syntax: HARDSOFT FILE.EXT X X = " " ==> the eighth bit is set to zero then all non-printing ascii characters are stripped from the file. (Written to FILE.HRD.) X = "S" ==> hard carriage returns are set if a) the following line begins with a blank, tab, carriage return or period (for WS dot commands) or b) the present line either i) begins with a period or ii) consists only of a carriage return. (Written to FILE.SFT.) The input file is considered terminated when a 1ah character is encountered. $ ͉:m:] \!"\*"͉!"Sʐt$*w#"?x*|}*͉̈́!e6H#6R#6D*+}l.|g"!."!  6# y† ʷx*|}   .:>ß>2ß>2ß"͉̈́!e6S#6F#6T*+}l.|g"!>2\>2h\>2|\!"\*"z*n{z*N͉\ output completed. $hardening completed, $softening completed, $File read completed, $The requested file does not exist. $͉͉ollowing line begins with a blank, tab, carriage return or period (for WS dot commands) or b) the present line either i) begins with a period or ii) consists only of a carriage return. (Written to FILE.SFT.) The input file is considered terminated when a 1ah character is encountered. $ ͉:m:] \!"\*"͉!"Sʐt$*w#"?x*|}*͉̈́!e6H#6R#6D*+}l.|g"!."!  6# y† ʷx*|}   .:>ß>2ß>2ß"͉̈́ **************************************************************** * * * HARDSOFT version 1.1 * * * * by Kenneth M. Toy, * * San Diego, California, * * copyright (c) January 30, 1984, * * all rights reserved. * * * **************************************************************** HARDSOFT is a WordStar utility program that is intended to be used to facilitate the transfer of text files, to and from WordStar, from non-WordStar format sources. It has applications in the uploading and downloading of files from remote bulletin board systems as well. This program is designed to either a) remove all WordStar specific characters (while setting the eighth higher order bit to zero) or b) insert soft carriage-returns into a file so that text-reformatting can be performed. The program has two main modules. The text hardener (this term, as well as the idea for this program, was taken from Lindsay Woodall of San Diego, California) and the text softener (the idea for which came from Bill Spencer, also of San Diego). The input format can take only one of three forms: input output harden: HARDSOFT FILENAME.EXT FILENAME.HRD soften: HARDSOFT FILENAME.EXT S FILENAME.SFT help: HARDSOFT help screen Notes: 1) This version of HARDSOFT can handle only those files that will fit entirely within memory. For a 64K system this means that the maximum input file size is approximately 48K. A future implementation of this program may include the ability to handle larger files. However, WordStar does not handle files of this size very well, so the utility of such an enhancement is questionable (except possibly for smaller systems). 2) HARDSOFT writes the output file to the default drive. Hence, it can be invoked from another drive (with the input file possibly residing on a third). 3) HARDSOFT does not alter the original file in any way. 4) The end of the input file is assumed to have been reached if a 1ah character is encountered prior to the end of the file. ** Hardening ** Hardening a file consists of first setting all of its eighth (higher) order bits to zero and then stripping all resultant non- printing ascii characters from it. I have taken the printing ascii characters to include all hex characters between 20h and 7fh (inclusive) as well as 0ah (line feed), 0dh (carriage-return) and 09h (tab). ** Softening ** Softening a file inserts WordStar soft carriage-returns into the file based on the following criteria. A hard carriage-return is assumed to be desired if the line immediately following the carriage-return in question begins with one of the following characters: * a space * a tab * another carriage return * or a period (this is for the dot commands). Alternately, a soft carriage-return is inserted if the next line begins with any other character, with the following exceptions: 1) If a line begins with a period it will automatically end with a hard carriage return. 2) If a line consists solely of a carriage return then that carriage return will be hard. ** NOTE ** Columns of numbers, if they begin at the left most margin, will be treated as reformattable text and hence WILL be reformatted (with the obvious resultant mess) if hard carriage- returns are not inserted by hand. e inserts WordStar soft carriage-returns into the file based on the following criteria. A hard carriage-return is assumed to be desired if the line immediately following the carriage-return in question begins with one of the following characters: * a space * a tab * another carriage return * or a period (this is for the dot commands). Alternately, a soft carriage-return is inserted if the next line begins with any other character, with the following except ͫCopyright (C) 1985 BORLAND IncBZenithminal selectedPY ELMKqp~7#~= oͦkԄ!!"~#(}:$= +*!5!*!!:(2!5:(>2!!!:O::O:!*! !45(! +/ 0y0( d!k5!{5__o&  :(͠|(  *"x2y( >28!"9!! og2"">~22 9/4*9 Co&ͦͣ} [ (!e{ͦA8Q0G: x@!\w# (͂ ?(*( .( w^. ^!h6# (?( *( ͂( w#>?> w#ͦ 8 !ɿ .,;:=?*[]<>{}a{ |ʹ}ͽƐ'@'7||}>2ͯ*Bڨ  "og"2>2! ""*B"[Ru*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#Eͺw}8' RB0 >' RqRR!+ Ͱ R!+ Ͱ r!+ Ͱ r!+ Ͱ r!# Ͱ r!+ Ͱ T]KB!z> S>))0 = | |̀̀DMgo>jB0 7?= H͒<z5a)a<z {0Gɯgo||~}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'd } ) W _}8(8J`9{T]=o`9y ) >' ́ ͬ͗ }>' xˆ }} ˸T}ٕ(0D=z ,= ( ͒ 0%{ , 7 ?(8ͬ x ͆ - r 8˸x ͏  ,-xG}r }مM 9r .>#n0͒ { = - nx ͇ ,-(-˸G,-r }ٕ?M 9.> 8ͬ ?= u+-(>͆ 0ͬ ͆ 8 ?x ͇ , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx( ?}ٽ }ցr <(r 7{ = |٤g{٣_z٢Wy١Ox٠G{ ͬ ́ }x>' ͬ}ƀ/ƀo -́ }0͎-́ ͎,}l˸ 8 4 ͗ x( - 8́ - 8,́ }l8;*!͗ ! >4ͬ͗ ͗ ͬ--- ́ ,,,-xGg?+2n*8t z~,->' x' ͘}. ͆́ , ! >4,͢- o&0%,͗ }gr }؉}颋.:}8c~I$I~L*͢ٷx˸ }0G,<},-(-́ !>I0 ͗͘ o8 ͆ >' m.`1pF,t6|!wS<.z}[|%FXc~ur1}͆ٯx(<˸ 8 !~J 0.O!>s 8 =  n s͗ ͆ .n 0 ͎-́ OT0 j oD,:j !I}袋.}8c~I$I~L! >ͬ͗ I× nn ͗ = ͆ nf^VNF!DLT\I!!53!r1!͒!> x #-= o˸x͆(- }(x>8(z ,z `iÃ!>' |r |̀>)=|(DMbo˸88x(0 8> ̀x(>-{(ay( z(>. ( {>E>+|(|Dg>-|/ 0:p# ~# +>0w#,-  60#}˸}րogM| .(z = ~> x0w#xG%͇ %͇ ZJDM%͇ = _~65+~hìx-Sx9?+{Η@}|z z gZJDM0{ ,7}o˸? #yO!@9i&?  #?w#?/w#?w#!9! E9!!9~(+Fͺ!"9!(#>2*"| >"2:( Ͷ *w*6 !\$![ (ͦ( #:~CONTRMKBDLSTCAUXUSR>2i:*ˮ~0:*:(@q##pZ* :(  ~* < >26"!"""~>2""v>2>"!"ˮ(!~8>~O6~*"w(6(2(-()(6 (8 0 :(* y(~#+ (( 66 #6 #"*: y~o p .##~ͺ(.6w4._~ =*##55= *[R8*~#"= ͣ}== ͯ}͵}*#w+#~+>*~('k!0(ˮ]k!8ˮ!]~-#8~>27kˮw>O$6̃s #r$ͣ6̏ k ( (ˮ qk(ˮ ( k ˮ*O:~ ##~._q4((=ʦ==ʩ=ʬò*:4^q*##~6ͺ>2}*|(̓|( ̓6-#[RM8( G> A~#*'C! !TRUEFALSE!9N#Y~#( G~#> >    "~(kѻ(( !0 (ˮ!!>2Sz:0:*6##ww#w$w#w:  ##N#F*B>2w#w#[s#r> "~ͮ*-w#ww##> ͮÁ""~>2:ZR0 *4#4>2:ZR> *4 #4(> >22*f(/˦:G(##~++ :O x yC!ͺ Q*:G(##~._.͚f<\=<͚*##w ͮ +4 #4x >>2:G("ͮ"*nˮ*0 SZѷR8@* N#F#s#r, 0})jS\*##w+ N#FB ͮr+s>2!T]>)j)0 0= ]R!#]*^#V#N#F#^#V>2Ͱ:0:*6 #-Nw#Fwq#p#6#w#w#w"~Á>">!DM!":*B:!>(>2>">!"2"~ʰ*w#wx(9* :O *-4 #4!*4 #4 *-N#Fq#pV+^Bq#pSZѷR&* s#r$ s#rL <?*L!\  <( !\$>2>2L:>!(* \$\<(!3: [1ð\!(7"~> 2"S"Ns#FrB(Z#\: \<(?*"}K\! !*}#"}! x \* *>) 2""{_!"*!nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* uKB!0>' ~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6#K*K*!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#V""6#>O"w2x2*"!F"" &y*"*>2"*"!F"""!\*: Nr!~6go(\R*s#r_2x( s x(T]DMx(R0 U(͝O/o&9q# (!>F0#( ~ ( #]( ~ ( (#}(  i&T-a%â}ͦo*!~6o&|:2 2}:__zѯ2*|KB " z ^C User break+=  I/O Run-time error {ʹ, PC=*ͯNot enough memory Program aborted :ʎ'1!»d!f$B>"P!X! }2! }2MP!!!X:ͣfz>""N!X*Nn&}2*&!.*&! }o*&! }o*&! *&! }o*&́!0!9͛O}o}oE!!:*&e.=P!#"*&! *&! }o}oE#"!:*&e.=P!*&}2*&}2*N#6!!:ͣ!(*&́!.͑!?͑!!͑!:͑!;͑O}o}oEʢ"!Zͺ! :!ͪ "!Zͺ!:! e.=!ͪ ͛ͺ!Enter name of non-WordStar file:  !͎ ! !:o !  ͛ͺEnter name of WordStar file:  !͎ !Z!:o !Z !Zͺ >!! ͛ͺProgram Running ! ͩ! P͎ͫ ! }oE0$! ͩ!P͎ͫ !:ͣ!E#! : !:P! -$! : !Zͺ !Zͺ !:P! ë#!Zi >!!͛ͺProgram Complete : !:P! #! un-time error {ʹ, PC=*ͯNot enough memory Program aborted :ʎ'1!»d!f$B>" COPY2WS DOCUMENTATION FILE by Herb Builteman 29 April 1985 ɠ hav recentl bee annoye t th poin o takin actio b tryin t rea tex file downloade fro RBBS' tha hav bee create o committe wit oddbal lin length an terminate i har C/R' o ever line M edito (WordStar ha built-i on wa street Yo ma creat o edi tex fil i th documen mod wherei 'soft carriag return en eac line Yo ma als conver suc fil t CP/Mees b loadin i a non- documen file Th revers i impossibl (s fa a ɠ know) Thus whe ge fil tha i writte wit 5 characte line offse o righ justifie i 10 characte line i drive m printe an m u th wall. Copy2W wa create t solv th proble o ho t ge har retur tex fil int for manageabl b WordSta a documen file thereb allowin reformattin an printin i th WordSta regiume I wa writte i Turb Pascal an hav include both the source and the object files. I work bes o pur text I doe no handl table an list very well. Whe Copy2w i calle yo ar aske fo th nam o a existin non-WordSta fil an tha o th targe fil compatibl wit WS I wil no rewrit t th origina bu wil creat th ne fil i non-existen o writ ove on tha i calle an exist o th operatin disk I the proceed t rea eac line stri th C/R' an writ th ne fil i lon strings eac strin paragraph I i the necessar t loa th ne fil i WordSta (a documen file an t refor th paragraph (^B) A mentione table an list ge messy bu th progra ha don 90+ o th jo an it lef a a exercis fo th use t smoot ou an remainin roug spots. Have fun and if you can improve it, please do.  Herb Builteman iles. I work bes o pur text I doe no handl table an list very well. Whe Copy2w i calle yo ar aske fo th nam o a existin non-WordSta fil an tha o th targe fil compatibl wit WS I wil no rewrit t th origina bu wil creat th ne fil i non-existen o writ ove on tha i calle an exist o th operatin disk I the proceed t rea eac line stri th C/R' an writ th ne fil i lon strings eac strin paragraph I i the necessar t loa th ne fil i WordSta (a documen file an t refor th paragraph (^B) A mentione table an list ge messy bu th progra ha don 90+ o th jo an it lef a a exercis fo th use t smoot ou an remainin roug spots. Have fun and if you can improve it, please do. " {28 Apr '85} program Copy2ws; {Program is designed to take a file with c/r on each line and remove those not at the end of paragraphs,and to remove excess spaces.} { Written in Turbo Pascal 3.0 by Herb Builteman 408-867-3917 All rights reserved} type Buffer= String[80]; var Fil1Var,Fil2Var: Text; Buffer1,Buffer2: Buffer; fileName: string[14]; procedure WriteNewLine(line1:Buffer); var II: integer; Buffer3: Buffer; Prev,Last,Current: char; const space = ' '; begin{WriteNewLine} Prev := space; Last := space; Buffer3 := ''; for II := 1 to length(line1) do begin Current := line1[II]; If ((Prev = '.') and (Last = Space) and (Current = Space)) or {leaves 2 spaces at end of sentence if originally there} ((Prev = Space) and (Last = Space) and (Current in ['0'..'9'])) then Buffer3 := Buffer3 + Current {leaves 2 spaces before numbers}  Else If not((Last = Space) and (Current = Space)) then Buffer3 := Buffer3 + Current; {omits writing two spaces together unless foregoing conditions pertain} Prev := Last; Last := Current; end; {for II = 1 to length(1)} If (length(Buffer3) < 40) and not (Current in ['.','?','!',':',';']) then Writeln(Fil2Var, Buffer1) {Short line implies a list or table if not terminated. Hence, print unchanged from original} Else Write(Fil2Var, Buffer3 + space); {When end of line is reached, a space is inserted to avoid joining the next line first word to end of last} end; {procedure WriteNewLine} begin {program} write('Enter name of non-WordStar file: '); Readln(FileName); Assign(Fil1Var,FileName); Reset(Fil1Var); Write('Enter name of WordStar file: '); Readln(FileName); Assign (Fil2Var,FileName); Rewrite(Fil2Var); writeln(Fil2Var);  ClrScr; GotoXY(30,10); Writeln('Program Running'); readln(Fil1Var,Buffer1); While not eof(fil1Var) do begin readln(Fil1Var,Buffer2); If length(Buffer2)>0 then {next line is NOT blank} begin WriteNewLine(Buffer1); Buffer1 := Buffer2; end {if} Else {next line IS blank} begin WriteNewLine(Buffer1); Writeln(Fil2Var); Writeln(Fil2Var); Buffer1 := Buffer2; end{else} end;{while not eof fil1var} Close(fil2Var); {I found that nothing comes through if Fil2Var is not closed!!} ClrScr; GotoXY(30,20); Writeln('Program Complete'); end. {program}dStar file: '); Readln(FileName); Assign (Fil2Var,FileName); Rewrite(Fil2Var); writeln(Fil2Var); .................................................... ..To Print this chart on a single 8 1/2" x 11" Sheet, ..Set print mode to 16 or 17 characters per inch, ..Set line spacing to 8 lines per inch. .................................................... .po6 .op .mt3 .mb2 .pl88 ---WordStar Command Chart---WordStar Command Chart---WordStar Command Chart---WordStar Command Chart---WordStar BLOCKS PRINT HYPHENS Beginning marker ---------- ^KB Print control characters Soft Hyphen entry -------- ^OE End marker ---------------- ^KK Alternate character pitch- ^PA Hard Hyphen entry --------- ^P- Copy Block Backspace ---------------- ^PH Hyphen help ON/OFF -------- ^OH to cursor position---- ^KC Boldface toggle ---------- ^PB LAYOUT Delete Block -------------- ^KY Carriage return ---------- ^PM Reform Paragraph ---------- ^B Move Block Double strike toggle ----- ^PD Justification ON/OFF ------ ^OF to cursor position --- ^KV Form feed ---------------- ^PL Word Wrap ----------------- ^OW Write Block to file ------- ^KW Line feed ---------------- ^PJ Center current line ------- ^OC Hide/redisplay Block ------ ^KH Left/Right Heading/Footing Line spacing -------------- ^OS MISCELANEOUS COMMANDS control ------------- ^PK Ruler Line ---------------- ^OT Exit to system -------------- X Non-break space ---------- ^PO MARGIN ARRANGEMENT Interrupt all commands ----- ^U Phantom rubout ----------- ^PG Left Margin setting ------- ^OL Insertion ON/OFF ----------- ^V Phantom space ------------ ^PF Right Margin setting ------ ^OR Insert carriage return-^N or ^M Standard character space - ^PN Margins from existing line -^OF Place markers --------- ^K(0-9) Stop #print --------------- ^PC Margin release ------------ ^OX Repeatedly execute command- ^QQ Strikeout toggle --------- ^PX Margin Tab ---------------- ^OG Changlogge dis drive--- ^K Subscript toggle --------- ^PV (̠fro No-File) Superscript toggle ------- ^PT PROMPT QUESTION CURSOR MOVEMENT Tab ---------------------- ^PI CONTROL CHARACTERS Left a character ---------- ^S Underscore toggle -------- ^PS Prompt controls: Left one word ------------- ^A Print/Halt/Resume -------- ^KP Erase answer --------^X or ^Y Left edge of screen ------- ^QS (P from No-File) Eras characteleft Right a character --------- ^D User defined print controls: --------Bac Arrow ^S ^H Right one word ------------ ^F ^P(^Q,^W,^E,^R) Restore previous answer -- ^R Right end of line --------- ^QD Print DOT commands: Display file directory --- ^F Up a line ----------------- ^E Line height --------------.LHn Enter soft hyphen -------- - Down a line --------------- ^X Paper length -------------.PLn Scroll directory up ------ ^Z To beginning of file ------ ^QR Top margin ---------------.MTn Scroll directory down ---- ^W To files end -------------- ^QC Bottom margin ------------.MBn Interupt all commands ---- ^U To screens bottom --------- ^QX Heading margin -----------.HMn SAVE FUNCTIONS To top of screen ---------- ^QE Footing margin -----------.FMn Save file, To block beginning--------- ^QB Page number column -------.PCn return to NO-FILE ---- ^KD To block end -------------- ^QK Page offset --------------.POn Save file, Tab ----------------------- ^I Unconditional page -------.PA return for editing --- ^KS To place marker ------- ^Q(0-9) Conditional page ---------.CP Save file, exit to CP/M---- ^KX Find string --------------- ^QF Text heading -------------.HE SCOLLING Find/Replac --------------- ^QA Text footing -------------.FO Continuous upward scroll --- ^Q To previous position ------ ^QP Omit page numbers --------.OP Continuous downward scroll - ^Q To source of Block -------- ^QV Number pages -------------.PN Scroll down a line --------- ^W DELETIONS Page number --------------.PNn Scroll down screen --------- ^R Character over cursor ----- ^G Character width ----------.CW Scroll up screen ----------- ^C Character left of Cursor--- ^- Sub/Superscript roll -----.SR Scroll up a line ----------- ^Z Word right of crusor------- ^T Microjustification ON/OFF .UJ TABS Delete to beginning of line-^Q- Bidirectional printing Tab set ------------------- ^OI Delete to end of line ----- ^QY ON/OFF ----------------.BP Tab Variable -------------- ^OV Delete a line ------------- ^Y Ignore comment text ------.IG Tab advance --------------- ^I Delete a block ------------ ^KY FIND FUNCTIONS Tab for Paragraph --------- ^OG Delete file ------------ ^K Find specified string ---- ^QF Tab clear ----------------- ^ON (٠fro No-File) Find and replace string -- ^QA MAIL MERGE COMMANDS DISPLAY TOGGLES Find/Replace again ------- ^L Data file: Display/Hide page break --- ^OP Find options: -----.DF filename [CHANGE] Display/Hide print controls ^OD Replace every occurrence Read Variable: Display/Hide ruler line --- ^OT of the string ---------- G  -----.RV keyword,[keyword] Display/Hide Block -------- ^KH Replace word or phrase Ask for Variables: Display/Hide directory ---- ^KF without asking --------- N --.AV [promt],variable-[lenght] (F from No-File) Ignore distinction between Set Variables:-.SV keyword,data EXPLICIT CHARACTER ENTRY upper & lower case ----- U File insertion:----.FI [CHANGE] Enter a control character- ^Pxx Match only whole words --- W Repeat processing:---------.RPn Enter hard hyphen --------- ^P- Find control characters: Display message:--.DM [message] Enter a non-break space---- ^PO Match single character -^P^A Clear screen:-----.CS [message] Enter overprint line------- ^PM Match character other Print line forming: (^P ) than letter or digit -^P^S ------------.PF ON/OFF/DIS FILE MANIPULATION $ Match carriage return Right margin:.RM (1-240).RM DIS Edit/Create a document ------ D or line feed -------- ^P^N Left margin: .LM (1-240).LM DIS Edit/Create a nondocument --- N Character not to Line spacing:--.LS (1-9).LS DIS Abandon Edit ---------------^KQ be matched ---------- ^P^O Input justified:-.IJ ON/OFF/DIS Copy a File ---------------- O Skip options question - Output justified:.OJ ON/OFF/DIS (^KO from in file) HELP Delete a File --------------- Y Help level setting ------- ^JH (^KJ from inside a file) (H from No-File) Merge print a File --------- M Help information: Read a File into open file -^KR Explain print directives - ^JD  Rename a File --------------- E Command index for entering (^KE from inside a file) text ------------------ ^JI Print a File ---------------- P Margins, spacing, (^KP from inside a file) justification, tabs ---- ^JM File directory -------------- F Paragraph reform --------- ^JB (^KF from inside a file) Place markers ------------ ^JP Run a program---------------- R Moving text -------------- ^JV  Read a File into open file -^KR Explain print directives - ^JD  This is the release date of the disk. !K"K$K%K&K'K(K)K+K,K-K.K/K2K3K4K5K6K7K8K9K:K;KK?K@KAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK[K\K]K^K_K`KaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzK{K|K}K~KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLWSAVE12 .DOC E9 15 2816 22 WSFAST16.DOC 26 F2 5376 42 WSFAST16.HEX 6A 95 128 1 WSFAST16.SUB 85 89 6016 47 WSPAIR .COM D9 40 1152 9 WSPAIR .DOC A0 B4 1024 8 WSPROP1 .DOC 4A 4C 6400 50 WSPROP2 .DOC 33 A0 11520 90 PROPOR .COM 4B 03 3072 24 PROPOR .DOC 63 D4 1024 8 WINDEX .COM B8 43 2304 18 WINDEX .DOC B0 64 8704 68 ALPHA  Fog Library Disk FOG-CPM.010 Copyright (1985) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. WordStar aids and filters (WordStar to ASCII & back again) Included here are programs to help save a file after a crash, aids for proportional spacing, etc. Filename Description -11-00 .85 This is the release date of the disk. -CPM010 .DOC This is the description of the disk contents. WSAVE .DOC B811 4K [WordStar Save 1 of 5] Recover from a WordStar "disk full" crash. Version 2-0 works with WS 2.26 and 3.0; 3-3 works with WS 3.3. WSAVE3-0.SUB 5E69 3K [WordStar Save 2 of 5] WSAVE3-3.SUB F1F7 3K [WordStar Save 3 of 5] AUTOST30.COM 8357 1K [WordStar Save 4 of 5] AUTOST33.COM ADF3 1K [WordStar Save 5 of 5] EX14 .COM C929 3K A replacement for SUBMIT used by many of the programs on this and other FOG-CPM disks. RESQ .COM 8678 9K ver. 1.2 [RESQ 1 of 2] Hunts through RAM for a phrase you specify to recover text lost after a disk crash. Similar to MAGE but works with most CP/M programs (WordStar, MEX, Turbo Pascal editor, etc.). RESQ .D%OC BB16 3K ver. 1.2 [RESQ 2 of 2] WSAVE12 .COM 518C 1K ver. 1.2 [Word Save 1 of 2] Eric Meyer's program to recover text lost with a "disk full" error. Writes everything in memory to disk. WSAVE12 .DOC E915 3K ver. 1.2 [Word Save 2 of 2] WSFAST16.DOC 26F2 6K ver. 1.6 [WordStar FastPatch 1 of 3] Patch WordStar version 3.3 for faster sign-on and background printer. Automated for novice users. WSFAST16.HEX 6A95 1K ver. 1.6 [WordStar FastPatch 2 of 3] WSFAST16.SUB 8589 6K ver. 1.6 [WordStar FastPatch 3 of 3] WSPAIR .COM D940 2K [WordStar pairs 1 of 2] Checks to be sure print control codes are properly matched. WSPAIR .DOC A0B4 1K [WordStar pairs 2 of 2] WSPROP1 .DOC 4A4C 7K Suggestions for proper patching to obtain good proportional printing. WSPROP2 .DOC 33A0 12K Suggestions for patching WordStar versions 2.26 and 3.0 to obtain proportional spaced printing. PROPOR .COM 4B03 3K ver. 1.02 [Proportional Print 1 of 2]