IMD 1.16: 8/06/2007 8:26:24 WRITGEN LBRq WS-COMFILBRS WS-EPSONDQCWS-MNEM MQGWS-PATCHLBR !"#$%&'()*WS-PATCHLBR+,-./0123456789:WS-PATCHLBR&;<=WS-ZCPR AQM>?WS226 DOC@AWS30 DQC'BCDWS3330 DOCEFGHIJKLMNWS33PAT LBRoOPQRSTUWSAVE12 COMVWSAVE12 DQCWWSBIBLE DOCXYZ[\]^_`abcdefgWSBIBLE DOCphijklmnWSEXPAT LBRGopqrsWSEXPAT4AQM)tuvWSMMRG DQC!wxyWSMMRG LBR$z{|WSPATCH LBR^}~WSPUZZLEBQS WUMPUS BQS'WUMPUS2 BQS9WYLBUR LBR WYSE LBRWYSE LBR7X-REF LBR6XAMN COMQ-PUBDOM 070 {nWRITGEN COMX!WRITGEN DOCT DOCUMENTATION for my WRITEGEN.COM (Version 2.0): Last update: 6 July 1985 Like many of those in BOG, I have had a great deal of satisfaction from TOUR20. Regrettably I have also had a great deal of difficulty in getting a satisfactory printout of the file created by TOUR. If I use B> TYPE fylename.ext, then I get a bunch of .hl and text or .sl +/- 1. If I use ROFFTOUR I get the text double spaced with text lines headed by 1.1.2.3 etc. Neither of these reflected the out- line I expected. So, here is a generic program for either a screen dump or a printout of the file I create with TOUR20. It was written and then compiled with TURBO.PAS. It has some error checking for entry errors, and has an I/O routine that will trap an filename that is not on the logged disk. It will read your file from either disk if you preceed the filename with a disk designator, e.g. B:NOTE.RNO. It does have some limitations, but not so limiting as to be a handicap-- if you will just remember them. -1- You must create the outline of your ideas, the outline you want printed, by using TOUR20.COM. Since the documentation for TOUR20 is already on the board, I will not repeat it here. -2- WRITEGEN.COM will truncate any of your lines that are greater than 80 char in length. And your own printer will screw things up if your're deep into an outline, e.g., "VII. A. 1. a. viii." and have 80 char in the line. ***HENCE, if your printer is capable of elite or compressed fonts, set one of them prior to calling WRITEGEN.COM.*** -3- TOUR20.COM provides for an command that sort of(!) allows you to enter short memos into your outline: see the documentation. I have made no provisions for that at this point. I will be work- ing on it-- real soon-- for Version 2.1. -4- My personal working copy is also matched to my printers by way of some menus which send controls to the#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 Dr. William P. Honeywell Nashua Presbyterian Church Nashua, NH 03062 1-603-889-1909 1-603-889-8442he results you got. ͫCopyright (C) 1984 BORLAND IncA Osborne 1 912/920/92P)(= ERT(1)1~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-ͨ 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(>.Ͳ (Ͱ ~ͦ{ *##~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[! *>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! 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!͍!,Ͳv+c!!R!́>> WARNING: Entry Error >>b!Bc1 */ !o&"!\!!s!! 5zʀ "!\*!?s*#^ $Ͷ$*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*#~[ ( *+ !\o&"*!aE;!*! "**!5z "R!*n&b*# R! b*! *! 5z2!"R!*n&b*# !R͐b*- o&"*! "*!aE!**!5zʟ!"R!*n&b*#x!R! b*! *! 5z!"R!*n&b*#!R͐b*!NE;!!!ͽŔEnter FILE to be read: ! +P._!\! <!\5!a}2&*&&Eʲ"!!ͽR!ŔFILE not found; try again!!B!!ͽ*&&}oE"*.R9$! [͐b! e.P!%Ͳ! e.P!2Ͳ!v VII. \E##VIII. P!Ͳ($!v VI. \EM#VII. P!Ͳ($!v V. \Eu#VI. P!Ͳ($!v IV. \Eʝ#V. P!Ͳ($!v III. \E#IV. P!Ͳ($!v II. \E#III. P!Ͳ($!v I. \E$II. P!Ͳ($I. P!Ͳ! P!vͲ * R%! [͐b! e.P!Ͳ!% I. \Eʅ$J. P!b!5P!Ͳ! .hl\E\!",*,!",! !*(5P!iͲ!i +1\E\!"*e,!"* *+!\vi. \E )vii. P!Ͳ)!2 v. \EH)vi. P!Ͳ)!2 iv. \Ep)v. P!Ͳ)!2 iii. \Eʚ)iv. P!Ͳ)!2 ii. \E)iii. P!Ͳ)!2 i. \E)ii. P!Ͳ)i. P!Ͳ! P!2Ͳ*,R@*"! [! *.q!i !q͐b~*R~***Re**.!".~*R~**.!R".c!!R!bŔ(If to be printed: BE SURE PRINTER IS ON!b!!Ŕ"Select screen or printer

: b!'+_b*'&(}2'*'&PRG+! LST:<b! bu+SRo+! CON:<b! bu+*c!".! e.P!vͲ( "*! [͐b! [! !q͐b! [͐b!\͝}oE|,!\8!P._b! m!R"(! !!5P!Ͳ! .hl\E5,!",;,!",! !*(5P!iͲ!i +1\Ep,!"*v,!"* *+!\%!% H. \Eʬ$I. P!Ͳ%!% G. \E$H. P!Ͳ%!% F. \E$G. P!Ͳ%!% E. \E!%F. P!Ͳ%!% D. \EH%E. P!Ͳ%!% C. \Eo%D. P!Ͳ%!% B. \Eʖ%C. P!Ͳ%!% A. \Eʽ%B. P!Ͳ%A. P!Ͳ! P!%Ͳ *Rv'! e.P!Ͳ! 9. \E&10. P!Ͳe'! 8. \EE&9. P!Ͳe'! 7. \El&8. P!Ͳe'! 6. \Eʓ&7. P!Ͳe'! 5. \Eʺ&6. P!Ͳe'! 4. \E&5. P!Ͳe'! 3. \E'4. P!Ͳe'! 2. \E/'3. P!Ͳe'! 1. \EV'2. P!Ͳe'1. P!Ͳ! P!Ͳ *R(! e.P!2Ͳ! g. \Eʶ'h. P!Ͳï(! f. \E'g. P!Ͳï(! e. \E(f. P!Ͳï(! d. \E+(e. P!Ͳï(! c. \ER(d. P!Ͳï(! b. \Ey(c. P!Ͳï(! a. \Eʠ(b. P!Ͳï(a. P!Ͳ! P!Ͳ *R *!2 vii. \E(viii. P!Ͳ)!2 vi. \E )vii. P!Ͳ)!2 v. \EH)vi. P!Ͳ)!2 iv. \Ep)v. P!Ͳ)!2 iii. \Eʚ)iv. P!Ͳ)!2 ii. \E)iii. P!Ͳ)!2 i. \E)ii. P!Ͳ)i. P!Ͳ! P!2Ͳ*,R@*"! [! *.q!i !q͐b~*R~***Re**.!".~*R~**.!R".c!!R!bŔ(If to be printed: BE SURE PRINTER IS ON!b!!Ŕ"Select screen or printer

: b!'+_b*'&(}2'*'&PRG+! LST:<b! bu+SRo+! CON:<b! bu+*c!".! e.P!vͲ( "*! [͐b! [! !q͐b! [͐b!\͝}oE|,!\8!P._b! m!R"(! !!5P!Ͳ! .hl\E5,!",;,!",! !*(5P!iͲ!i +1\Ep,!"*v,!"* *+!\ PROPOR COMKFOOTNOTEOBJ>FOOTNOTEDQCY'vPROPOR DQCąWORDSTARDQCAMAGE31 AQM5À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  (s. 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  !  #*+%"H%"F%"D " " "y 6"C+6+!^6 F+N+<!* !!9~#ʗ RO"k'k +}|+#~ʂu6#~#<ʷ>!4R6#6*!͖ * |ʴ!ͯ"r! ͯ" R Can't open > or < file.$èw*6 )! 9!"6*:B<*C 2B ́F  €> _*C~+#4N s> > !+:EºF2B_~ý   > G ʘG!* ͟> !+}  > _con:rdr:pun:lst: ==_~O79 >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 !"# !  #¾i& ~º!h~#~#F6%pw6237!9Ly=S>wD<!gs 6#6 ~+|s#r{{ ڟ!+#^{!!Pw#w!g~<6 !|~r!N!nL}*eyb>w#%!=)${=Sbtx h&{ !~!nN#F{p+pH#x¯ ڽ+!9~ !~b!5> 6> *e w`i#Q᯾%,!$|!!9n&:ʟɯ2>[!9L):|!PwL#4!^w>2>2-:Ecx:-O”! DMi:- !Write error - Disk full $`i7.!9~=+SV+^+F+N "I> w+ w w##w w #~+:&~##K@~#.7K&*I++Kw#=a O! ~_#V!$r+sbk#|}o|g:>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 hint}o|g}o|g|!,|}!­­,ɯ|ʙ!|}!-z{!,zz{!-|!|g|}! -ɵz{!-||g}o).{ozg+|/g}/o~og~#fos#rN#F#xr~#~#[[`iDM!z>‚S\))Ҋ =‚ɯßz>|>MD!x<³z>ڸjS\>))#  =¸>>;!96 !9Fsͯ!9F͓ͯ !9F͓ͯ/ !9!9F}!9F#|M !9F&}o}!9F|c !96-!9F|y !96 !9F3!9* * * * * * * * * * !L966!" !," !1" !6" !;!!Z9L !_!ͨ!" *  4 !X9L##L* F͓ʅ G * #"  !79* !*9* !9* !^9L##L* F}}}= !" *  ä * #" Ë * * !79* * F}* * !(9* * F}* * !9* * F}Ú * * !79* * !*9* * !9!}}}!U9!99!jͯ}!͛u !_!!79!ͨ!T9!*9!6A! !U9F͟â!P96I!O96Gñ!P96C!O96P!P9Fͯ!O9F͓ͯ2!M9F!K9F!M9F|!!!P9F4/! !U9F͟!M9F#} !R9F!U9F͟!P9F͓z!O9F͓w!O9F͓͓͓ʢ!P9F͓Ÿ!O9F͓͓͓!P9F͓!O9F͓͓͓6!P!!P9F!͟!O9F!͟!G9F|!]!! !͟!j!U9F!9!R9FͯZ!Q9F͓ͯ}!P9F!U9F͟!O9F!U9F͟!Q96 !G9F|ʶ! !U9F͟!G96!P9!W9F}!U9F͟!P9F͓¶!9F| !n!U9F!96x!R9Fͯ2!J9F!S9F͓͛Z!H96* #" +* !L9F}!Q9!T9F}!T9F!#͹ʋ!s!ͨ!N9F#}c³!U9F!1͓͛ʿ!N96!T9F!N9F !R9!P9F! ͔0}!U9F͟* #" +* !T9F}!R9!P9F! ͔0}!U9F͟* #" +* !T9F}!U9F!U9F͟* #" +*jͯ}!͛ʳ !_!!(9!ͨ!S9!9!lͯ}!͛ !n!!9!ͨ!96!9!9!}}!" !Z9Lʈ !R9!Z9LL* #" +F}͓ʈ !9F|d !R9F͓ͯs !96Å !R9Fͯ’ !R9F͓ͯ¦ !R9F͓ͯº !R9F͓ͯ !R9F͓ͯ !R9F͓ͯ !R9F͓ͯd !9F| !9!T9F}a !9F|@ !9!T9F}a !|!!R9F!ͨ͟Å !|!!R9F!ͨ͟ !9Fͯ!9F͉| !|!!9F@!ͨ͟!!!79!!!!!U9F!!U9F! !U9F!" * JUA* #" (! !U9F͟7!-!U9F* " !" * * ʞÑ* #" w* * 6Ç* " !" * * * #" ï* * 6ÿ!" " !9!K9!Q9!}}}!R9!S9!T9!U9!V9!U9!T9!U9!V9!&9!}}}}}}}}}}!J9!V9F}!J9F͓ʀ!J9F͓ !V9F}!N9F ! !U9F͟* #" +* 6 !R9!V9F}!͹W!J9F!T9F͛!H96W* #" +* !T9F}!R9F|3!K9F#}* * T!A!ͨx!9Fͯu!R9F͓͓ʐ!R9F!U9F͟!Q9!T9F}!9Fͯʺ!R9F͓ͯ!M9F#}!96!K9F|!K9F!M9F!N9F++͓H!M9F##}!!U9F!" " !9F|J!9F!U9F͟!M9F!N9Fj* * ͓ʽ* * F!U9F͟* #" +* F|º!K9F+}!M9F#}J!9F|!9F!U9F͟* * * #" +* * #" +* F}* " * * 0* * F͓͓H* #" +* 6!M9F!N9Fx!9Fͯq!N96!9!O9!}}!" " !M9F!N9Fʭ* * ͓* * F!U9F͟* #" +* F|!M9F#}Í!" * * !* #" * * 6 !" !F96!M9F!N9FU!M96!I9F#}!!!I9F#}!Ö!K9͓ʖ!0!ͨ!R9!W9F}!͹{c!R9Fͯ!Q9Fͯ!Q9F͓͓ͯ!P9!W9F&}_o}!O9!W9F&}_o}!P9Fͯ?!O9F͓ͯ!G96!P9!W9F}ͯlK!P9F| !O9!W9F}!O9F|ʹ!U9F! ͹ʹà!P9F0!P9F9͓!P96B!O96L !O9F0!O9F9͓#!O9!R9F}!P960!O9!R9F s!S9F}!O9F!N9Fo!O9!N9F}!P9!W9F}!͹* #" +* !R9F}!P9F|!F9F#}!F9F!Q9F͛* * !A!ͨo!P96I!O96G!P96B!O96L!P9Fͯ7!O9F͓ͯʱ!G96!P9!W9F}ͯdC!P9F|ʥ!O9!W9F}!O9F|ʱ!U9F! ͹ʱØ!P9F0!P9F9͓!P96C!O96Pâ!O9F0!O9F9͓!O9!R9F}!P960!P9F s!Q9F!O9F!M9F!O9F|^!a!!P9F4ʖ!P96P!O9F|g!K9F!M9F!N9F++! !U9F͟!M9F#}Ç!!U9F!" !9F|!9F!U9F͟* * F͓* * ͓F* #" +* F!U9F͟!9F|g!9F!U9F͟!H9F|ʀ!!!!!9!!S9F" " " " " " " " " " !B9!9LF|!9L#Q+F!9L͟!9L'6!9L!'͔0!9L͟!9L!'͔Q!9Ly!9L!͔0!9L͟!9L!͔Q!9Ldʼ!9L!d͔0!9L͟!9L!d͔Q!9L !9L! ͔0!9L͟!9L! ͔Q!9L0!9L͟.DOC.NOT.PRN FTNOTE 1.0 E.Meyer 03/84 ! no file rw! can't open ! bad option Formatting , ^C to abort... page 1.IG Formatted by FOOTNOTE 1.0 (c)1984 E.Meyer .IG ---> For PRINTING ONLY; do not reformat! .PL 66 .MT 4 .HM 3 .MB 8 .OP .HE# ! bad delimiter ! buffer full ? ignored .; bad formatIG .OP ! missing no+i2>! , c tA)Q^jZG[ 0$z-r7^BgS3Av1$qo~A428z-U4L0aBANvOha5z-@((0LUu c M 1B5c {6^Дڞ OU`ǂP0ge8jqdʪf}aUb~΄-e4^6^X e!΄m FOSU_9!AXI2inj4hGh$ iPhTpZF%ęb:siѩa7gOh lsUIԷ \#-h{ ,j$ze8/!Q+i@;$bp& :^F{&b4U%ǿRPh J ,(1!dhWӑtQҲ*i LFF{H_P$tjXz ,)l΄hZZ=UYxwqqx*1?~.-61h8+CX`uÝD}1WSUa%mxAxQ`#qszM:S"h%޲*wK@t E,mz / l$Ρ nLVS MUY+3:٧HȚ`FM ™0:{:Ue#pJ@aE!KPl4mDO)HZ\gOu&p@'}V'l-jC"g #mzU'6.1m6BSJ@C tYC;H c q8|tF*pc.E97Z:>}q#7D]'hTOUzA$HPjHw8n|l(;?YV&{1{M j™Dn#:t w-k?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aswǽUϏҵ=+ {`*1ۯϖ.(H. o˓ʪzPzG?\}(FUbVNecO*vo]FWf-{& nx0 OUA:,Lh$zev /JD}U9$[@-`ZF#&L LX]AG4`%4!IO8$QJ@؄ۈAs)Uq#: gtjSUb~|w_QNe ҵ=C 6aJUHn,P$ }-]ۓ /hsF#&L LXU) HAGZbua726w-kLU:528\cW/tQ`E- OwUIWڱXFP'MN N^uE!9z]cugChU. ZBB%4P4>A`0hb6g^CRPU:6~ LW :5,Ab%@mBc-U4xo/ h[0X Ft*1?oYΉ>%pZZ=UeU^pl*1? ?'$ =EZ`CzޡJ0a`bwub@~AuM5:{:2jO : J񂦪|.-:5tAʄ+ЄȺOpg '.>VV`[`(6aZB1=.khi2Vb`Ab ꆍs .htR Oޙj,VXIxG)ΉN_>$[֨ Ԕpyy}:wٻLXI!Xb%-61N,yb2J!혥e0]1j06p&4RqAW%N_>Ƌ 6Q=ϥ 0]1/Q sgO@,Mxk%j _nLAUb~rt Ҁ3^+-Ē 83]'rxA0%,mQcugB'mFMêxkc=JKHNH5VqAUb~rp&$$6D#uǗo=;Y:0]_O|P>}{BvVc.Ǘobw 0_ :PZUV%Gz w(0>ʪPWfϏΎv7ǽK|~BiJ̏ UY=($x~tvnU者*{ۇU:d`Cp!΄N^FFuN,ybHrʅp4r|y΄.kh8}zZ]qj+]@tYC;H8[n[-w˛*יAB6XI tY$8) ٸ]L 4*1?><^n^hD؄ h Ҧb&%XT?ˆ)+i&gS.JZtjpKLZ#>3~A2C)Kt*1?>pҢ,,ȺOhD؄)a7 7(jo 2!W8R 8xE}"C|>B'5tKEA5p'Q߲X&Bj ECmJnLF*J%:釠n^jrpc%r_C2aPH) 8+퇂d)h«˷BvVc.| 3yUwH+H΄Txīo^K^S'*1?9Xa:$p&$ @KUgUp?׸:{B-h k0)+`㜁LHIlnG2/>{vDu` 0*1?9^}x-AV{]8/xybpP{DO ΄FWq1%w' LW^6Y)\Yk, nXI`b4^j5^h+4hD؄)MUYG7{7gUsiC161Dv@#jFS :P@oQQUp2);-08wyF((a#Mza7NUg((a#-Qo$X2@BԠL$9ibLt$,VemJ΄P&b AF 7TUٻۇUΔoFFV%&A5w08nMEAI߫'UIPݻD/ǍGtIUb~{„)U:S"PDƋH6U,FM~l„ B#+cIUb~6„)U%_hM[Uymкvv%VҢSH ΄6ZW 7EHt*14^.OT%_Щg@Ͷ*1֐] 者*+i+iuHk5v8{2K i"7܅w>;Mmd%+DzŖُ\.qɷ~͛˯SUm>=)橿n9>\|1z)^10~lq&6O'hT.Cp/O1e{>>lO|y[b}TO11Y83Յ  gO:)@$cPM㯝h<3PM㯝8:S]ph| RzJz4~~ (^i㯝8:S]phI7fЋEJ  tyڎAAr/y01Y)@^4%(ݺSG3P0\/iluR(ݔh;Ơ`>)L͚akC) 2m㐡n52}b6%'69vz5f:UCf٢,_1@[΅;fuy؇H1$t:1`}huNuXkpiLjVR 63;_C":_wb CL}g1$t:5\ )@_)CPc:@!yR lj؇ 1j P,kL`lQ'PC Ƀ8dtƮ9|N!¦./e6OTǐbH}L:8[FhX01Oirښ 'kqT'Ő>1iBid_Ä0C\Ls)~_͞׃Yaj9@òtV#lQ9lPawEzF2ms<>B З,=hs&/,i[K(}Wlֳ,+)yw(-0kxb=;=Uwm"}P04}b_ '[-uքwOY WyZ$=(P)Xh_g*=e)@ o3[bu$#Pӓa ٕ o3[h[ P̥m(HFx'SÐwWRM^Uh[V`K!ȫXAA2 JKrvPROPOR.DOCH  !"#$%&'()*+,-./01o23456789:;<=>?@ABCDEFG8 0aVP߽'Å/ˇ;ۗiw@L>k.H]Dut魌B:mlB+μ@c<+Nh O3ju`M sy(pR HJC+Jte 10S9 M;d.QX!TRc\b0Q)\m_8#8pFu HҊiтF.sV:m:PwBe}<#Vu | 6x#Vu N>vj;#Vu n_m瓇:aUP羠Zq9],r n_m"UAp6I*x:C+tt؄V8#y)iCE n6TXhX=dZ0 7F&e 1kX-5 mu "lÍԚ,h|LbMJL XHiW}X2gRW "l}>)ca" 'lD~S`fU0otU~s D z^.La!v߆WORDSTAR.DOCj o !"#$%&'()*y9@AK@AJ!ȫeU>m(HF>5^,py'uR\V{`ttZő2; -.J wף-v3P0Zb)@q^=h[V`|$ 8{ikAA҃H̝Ћ.<un F+)@q^-I!;1质Ơ Aq;v&t/^Iz|Eu F+)@q^=h[T@=)yy}:-3PL;@/S_I0m>(yy}tAۢB )@^V- $=(ޘ){ƅ:w^\A:c)@^V0EՂJ WGU98`|& V|m o̔}[sq;/z V|~J WGr>?h@RM - \_=O1UYKZ ɣAFh@ARI6y4C>(y<Da v P\s SY>mSڟH!h $ (4cwVgr&s/r"Tk)@&G0>(H)@&GЃb>I"Trv ecRdԅZ+Sh6 @l`'4rSyC-aJɬ@A5aH:a7:PMbgSd*2!S(`ěءT-aJL]<_8v5MAGE31.ASMY  !"#$%&'()*+,-./0123456789:;<=>?@ABCD+,-./0123456789:_;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[r \]^_`abcdefghiuSON d$ c)' c)吼gwӇg)x  @u Og,f <-/׳4*iI!gwAΖY ʴJ!K9cu3ed)c;?Ǔj˴/p3~sk|%NLRH!qY ʴJ!ŐK}b5a<1ٞLتRH1$'`!$#P7쇌J1$? 9(M}>1bkmF )}BAAG !\,z۟@A҂t1n+'oz+Ő]$GxCH1$jQ9(HzP\qfn`}hձޞ(m(Ő]@n ̍CvكN*I/q N gF W)t]A}!(m'2m3.>/7&lWRNU<U {x g[[hop6J W{ӾW,gq437R|W/נm_U`w/U&Cx,B  (HzPYq6Eo8 rڎ(HPZs1:Φp5K4JWAA❞0S:ᛳ!b!Gb zJz4.v`EFGHIJKLMNOoPQRSTUVWXmԾ{{><`ru&2mPP!Wݾ2SfC+!I1dK/'ɠ d:/ :6W>!!Ն }FP6YPd  R*CjB -@6TA*C RJHRPeR/ڔ1jQ$>e ]gnR:j,c{۲` T)reҲaS O|{x`nR6N8n۪#ٍ]@#/ѹAeT:eW [H>uN8KQǟ_[2'(|6}L1e{ s$_1쁹-K)“ q*Ueo3cc,MQ$F5:OM3C=Կ>v1瞹 !/ѹHM"kLY{,?핳B)H3MԐP^t߮y8+ mt.d ^%"s]b>r |gn LRtڦe_sܖ+8^9+`Ud%1=[gsCYЫ`2WA^hs!5I +۔rCYA+d64& Uk &Iboz`n]U$WA^hs!oOuϧz;1]SUdP5I2W^9+d2/űfnRㄠ\QRt"Xcn7C 2YR6:2pR8;-yyfn?%UWA 2con1,[WA 2W\4wű~ܺ R!ldXTɺ,cg, udNmZ1v18۲Lp!e O-s[^!QjJh C2)b~5W ʤ'B,UDi)Ȗe 1_\<-O1z>>\<"o/lO<=)橿n9>\|1z)^10~lq&6O'hT.Cp/O1e{>>lO|y[b} |xWE 1쮋c-?*sX!QDpȦozzyAi 1c-?YRT^éwosE&TʠHW bvX=s?n;dlyV CvZ l UaSh3߷m愥jo*A>#G ~y_!-)[SlğfӘ >ċy-)?NY|(ꗯ0f*ٰc Ol1Oو~(GKxTঌQ\n[ON1VY}Ɵb8Շ3>fyn6MvV'^dS{T@;e,A=d["/1ڦBgiRz!w߿)ny prx rbn7ʤ^Ы6e)cˍzK)w)C}/|?bVS y/|)v/0cXMw߿5t@!c觗w߿w'6!J7ன*2İ8s+F[ *reŨwʟbw81İ]̫3/|[τ|u/:!ޞꞯu= ov1?rIx2~Svv h#ijS?۲dB-$'1p}6ԫ6OHhPe ^=^u3썳MYhe ċya~Y\m~KTxAJ A%yqv1'+T)Vw4f*1p?b)wB BNT K@c O<\`Wax1Oؔ x(Vwal\`1'U#v &qdp&㝲 >ċyOаASvxs1'MD&qdlXe1'^S6x,E=aC:Yy8nPC ˻3>fynKՙ (nET.!ʨc O zax1O٘3J!*hlJRc O<.UB ~O >f*1p?bq_3pqI/H)!!h8FB }1VY}RKՠgS*Gi \*1p?T !45 (Vw4f*1p?bQUX Q^P2,UK1p?rK6#3-1VY}w$BJy c O<~Ja/\_|F yC >ċy%T 6.IvWS-EPSON.DOCC  o "!#$&%'()*,+-./0231467598;:<>=?B@ASgrh{-*Sy xylw))?rb}ވ/*m2'O9ż}7_ʼޗG>~3)<)joe᠉e]}|+6rbު>|(+0Cpg~8h5 <[bEN1oAS&elw)b؇{g y##")ze^U K#hs?AH[| a5xuTQWm9żU}QVta܇fsn>ønS[A픉.b؇{g S]9ż}73:a^/}|d $EN1ok_-]}| 䈜b޾5?ϟnZm=o,rbު>|(+0Cpg~8h6)-t 6ryuQMRIV ìU,SW@3rY.rb޾u¼*EC𼍜bv~]T2<RqQUV g# eF7J@bbP3A i82c~L;e=4t1VY}̆UVc~7D~U rmA61' Lf -v qᓲ9aٰc Ol,)`lϸ[bo{gv'Zc O< >f*ٰc OlċyOаASvxs1'MD&qdlXe1'^S6x,E=aC:Yy8nPC ˻3>fynKՙ (nET.!ʨc O zax1O٘3J!*hlJRc O<.UB ~O >f*1p?bq_3pqI/H)!!h8FB }1VY}RKՠgS*Gi \*1p?T !45 (Vw4f*1p?bQUX Q^P2,UK1p?rK6#3-1VY}w$BJy c O<~Ja/\_|F yC >ċy%T 6.I#&}>U!R|@BXݤ$z5s+#&%=?5[b#j>ʊ.LC;c-t )2-t ; Sty9ż"ǸhHf0uziѥؠU yFN1o>@S&2< ߮`j]:h9E9ż}N؅6$S]9ż}7)+')}|g S!y)Iy^ү}ǧBBSV XGYх}:y!v3?4_/)[ 3 @S&elw)f !9,~9GN1oM&ޗG>~3)q4MrT@?A_CBEDGFHIJLMKONQPRTSUVWYX []Z_\^` cbaSdegfhijk6uQl noqpsmrt,2 &:nn֦ʬfS 7\nfL?g~}hV h~2nxY[Aa43 XD/-n%V'f,~ڜpGpjPx*{,~,йڜjS*밸iNi3g,omhi3}tP6RO%tkHu6Egh3misn77'w6OjSr97M<:sgu_@폮G,):IjN@g,~Or}ϬӫT~5C?.SܹYМG0)[9.i*&ߡ37ZB?[Z#@qoD1! @(FC*p[o6# ."qz(Q7_#ᆷF#릃zjۈbDOmQ(!VW7}ň8USMzD1"^7oG覃_D177: @~@ "׬PbD@ Q[_a(FOV*#󸽕 _D1z*g(FO6fO(Fͪ^h[ 6 WD1ڎnt(FŭOAQ6*lm6m  eDWSPATCH BUG ^WSPATCH AQM JaWSPATCH DQCW\WSI3PTCHAQM-tWSUFIX4 AQM+1ANYCODE DQC jANYCODE AQMuWS-EPSONDQC!WS-MNEM MSG&WS30 DQC' zWS33LBLSTXT/yWSFIX TXT.11 February 1984 Re WSPATCH.ASM Patc T allo us o Godbout/CompuPr Interface boar wit WordStar' Por Driver. I th initia versio o thi patch ɠ adde coupl o routine fo friend tha di no hav th Interface Board They wanted some of the other features included in the Patch. Althoug everythin worke al righ o stand-alon basis di no chec al th Toggl Combinations ha adde poo conditiona IF/ENDI structur a +mT(FVS "$u+ਫ਼"$#n#M=B2TJ_Dn3­[mF/U]U1rыWd^~}=ͦ{bT[ΪYD@n`WzQ<Vp;'ڈ@n`( `ڈ @ v}Q<~"Q<4nZQ<4(no(v"mk"*o#*/TW*խZ"mSWDnx(mtEO릷EH6vZ"mM펯aCnzQ"}EH>7BS?[Dq`7lu>["L [! [WE}AgLTg(& EH& _EH&M;_D\!h,ܾDV]DMlGTvۯbp{7ۯbܺ_zQLP Wdg}Go#mEO=YgbuF֙k ]dbkݮIb ߵ3nBu&pV!;Ygm]`ۦ:x_ lSFr>P=zo+Brϛ[A+Brح@ _jA "om~ѻ5( 7l_qWoDqxt(ŭi5ܺ۟=GTn=߽anfuQM_U0uEֹn.Br?ng([7Q[7Ydu&Eֹ?.ܺ hurrie bu fix Thi cause a assembl proble i som configurations Especiall i th IF3PĠ TRUŠ configuratio tha thi patc wa originall mean for Thi i correcte i th versio date 1 Februar 1984. ɠ apologiz fo an inconvenience I an othe problem ar encountered, please let me know: Keith W. Antcliff P.O. Box 906 Mead, WA 99021 S.M.U.G. RBBS (509) 255-6324 If at first you don't succeed, etc.... Keith vǒWSPATCH.ASM  !"#$%&'()*+_,-./0123456789:;<o=>?@ABCDEFGHIJKL  QMNOPQRSTUVWXYZ[\]^_`abcdefghi QTN7t4vXH5hi-k3MS,4?KS xGi OtĜf-ӟPM"ܥ@*̿O /5OSli8K /y.Sl?[fTw@x_ I7]֧N] bEBA*WWof_!‰`V0XLqM)yB#38S OgPT0X+nr)T3E6kMQR9ff 23b[;4))S4Ϟ}/MGlSxnj'ϰF@H#\nn` fs^TNw@aB)."% ogP?/tĤ A5SqRMAo{mPT0BAs ľd]Cz[}/tS?j&:+'-7>bZ*} .4) yD=yoM)珟=B댧PK fEy&48H#,un Ӿ`selԟN# * mXg3]Oz( p`#& d#6 qf`\{?ˌgpT6k:R}*%s^ш}^Aϐd2xK,݁SFm<ɛ`V0;<觯S ..1ՠv`#V\v<|_0[r]bÓ`>g`D%,78y3`\hEJnPhsܸ[~JSx γgkM鈝7X+b[4RdB f;Lӹ^/¼D+nr/jiK`6,B; Npd]SY ?̦#q~rg)<ߥ@|Bz^7)6ty;M6\fOSe6b!ՠ7pP4@Sl:bpݥ@|\,Q7hΥ~5=韢7)|}$MGl)?ŹSUϰ0Z遮p r[?"H5@~ŧߢk;x|!TSl:b/jiNq;dΓۚS.G Bz;)K|'MGrgJb?qoq.o|Oɺ٥`V0XиF{ܩwzN5#5.ه`VvJPrاaD0+`4҈>F_0"@0 %aU6tǻA''@0K},W.38Zm_Phw } Xܮ>U?!?ˌc3VW+(rC>]e1G rwQFOGfiDf?M ^Dae1G S|'.OAOl2댣oq,k fa7OaONrGGǒ{<,GaW''D6R(= mrnp),WJzfBdYӾ-䀣ߔLaNaWՄ(r4rp)XQ8O0wqcå`E5,%} OpBdYӾQiF [}Y&4^[YCHH?< fr1!?;0q`yQrاp5!&5(伖>'d_̕뫨F!<,Ov+J{>!{>%\i9`y{Fa'di9`y{Ca e]#}伖Y` Jj5&^`oy@aLv-%} vB6l OxKy# 'aNqSrاm'dö~Nq<+JaNp? 'xj]ͱ~n@xJlض u)wѵaL&) 'dö~N͢>&^k a)9SNȆvj*׃r}. *J&dÓ t{DʸV0Wn|>haB)̦#;_ܩw_bak.RFr=R0tD{ {nj6[W; fkRľd ."%p;f?AaܩwtT3MY;_~B) |ϠOYA݀B)tF+=ПH?)tx0#HW bdyF0ߔS<S;E] 7P 8w'N-447rsA3M4IL9MO!ORh3l:bߔSN7hϰuGPS] wpORdN0؅6YYsWG)E0]"x"}HRt."%R()T3Ern*]*F՟`;̦#jR0+MGl?>J1h)R ӥL1?ǏR7)`61󌟦) =T3E+nr m pϻK^`M L)gҜXg3]R`6Wi 韦`6.ϰ)TS,^pSoR h琞zsgGygl:b,@RmR h${WO1c;W/Slty&MGB,Rܩy< faCr-<6"\f1bEb.ň0D Cl:bWETrbĮ*,Fǹ`#6!M ~u]λ`V0؟R4v{ 2fTw>E2 'PMqY LSqRM)}pP{G'vB6R(`e{ZmZn<&ɮOpB6R(`e{Zm0>8'X<>o&dpDJp`QP_%)|Ʉ8 < 戔qq`h' 'q`](9Sx2!7a&=qy]`Fdc_qnC.D OEW3|W)J6J9%}** ƾf/ܠ5 m`E,(9S 0mƾf/ܠ0Rz VT2Qrاp0 {[7Ec)+`Ŕ)=0=ْ}^A 9˲V`E,הe١Vr 6}^AO00z  ѓE;+*Qrاg'D6wNe_{Ice{+*)9SU)Y6kT6J>]zdswQFOHIUz(Q])9SU _G6wNe_{k_]F VT2>'aے݁SFm<K'XQhGaѓ0m)Y6k/K'XQ(O^~-:] Rzq=(qjs{c*XF)9S^%[uH|uTׁėۚ VT2(9S ѓ-ي{\akgh7=dǭ`V7p fQG&4xͥDZ C`7Ņ6YΝzLps fZSHqZ0 O)R ua;E}~A3Z~iwGxuju.G))


p :Q`Nd#g4WF(QmL kт~4 F]?9!Иk_]F FU{4."% "%L {A00[`=[I d7'`(Ov<ٝ\nu'gy{#`U4Iv`Q>8$z]{q_A`QWS<_'`(F\u)w,k%`Ux&`(dBd#0,_Mx@`QWS<_L0g4y7'W\s_}:U 9˲V F]uLQP_% F. *";,[n)Zmc.`}  f|$0z0Fou{D0+-.σG6YArUaqA u#.Chfr;G@t/ %x b7_UEq7Dj/#ۗF!RR m`q/)9Sܮf'd(,uQ)nUNav5XK03TyvAav5xE/Bk>P7U)|6!97(Qj}Eaza~aoKv)j<`qZF;J{^%;6׏uʻܿ <j-)9S^%{uTu5\w]j}.Xܮf>^ðmɢw2 fi1s oe]r6լ'3<\a1ofDaѓ-n8>=37{2 f)=C 1eFa!~b&ˌz0C0L`0!FO^L^; CdQxu2RB<녘2^x0Lz!fzv3Yf $ CdQo{~2R C<{b&ˌza/C< Cd f)=< CdQ/3YfY,ʹj~TAv5X fF fQWS`Y۟FO8y܁}b`裹^/hW+=n Rw2GY1G,ѷ?_]]C0o4Î[:Eoc_UdBr Zw "7(QQ<]#"{"%U FaLqZF_٥C=gxS`zY,W"\/j6k:a.`ՌF0o FaL0cEq `v+#ESܮr,OpnGYE8@;l|݋Yb'#]ʣ`\au# <4\}D0+I0IPURTI f$Bb !I~T(|qq%UY,$G!yGII|nqv df1z2WU2 v Ib'; ɋ (Q]7q7j5"=vf m̃$Ixn]`GEADD(`V0%zs-VY)٠3\> fiY܇2Ai@u&V 7cz Ӿ6Y-7ӾDž6YcZ;.`V<-7ӾH0+%z F_/bfD0p,2Q:7?e0z+J#\̚Y0)n1{`./(9˓]2 QrاlBxFaN?`y2 >{, Jt2<`<Jt2kߟ`˪)\' F]uL˪Y]UGT $`/('Ø#"7vy$^4΃ ˂d { 68*Q4! Ќ1`rʓaP$OMhB|QE$]A˂y$d $^/ ZvU1H0~Jy F0?GvUWSPATCH.DOC[ o !WD9 FQ0'" Z2Sp>jيp{ BejLc";4Kc6׈F0@0+E|@K|=OP/|ݿL)}.0 ?:"{ 纬O@S,(7BDߜ˧{};,R9)R ~ OI*ߥ ]  7SfnRh~vCӷ?_p_?|+%[(G;pJ(C³Ǔk 5{GY1G,ѷ?_]]C0o4Î[:E!]DD+DJ]ADu)@Dž6YA2h|=O rv2j"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ?ƈ?{tra,WD;?u4g{O^=/>3|ߞ޽w[|}O>޼?߼7ׯ=^|{ ;'x{ӟg{oxgyξ{?+='w/^|{?}z/瓏߾x =>z?y<Oo?ŷ'ǓwOo>,3c 70\Wg?}?!ɻ},3{_zO1$-ef=yݿo;nqGg'o^|^*;Nn/Yef,m|{F=ݟ.GҜuK+qg䃉 J'LdfUy⦲sU쬳~bD ܭVI=ODΚk钁at0gmfr:xfr:5!uR{:6KCs2@ՖQFs,tu^ix3^=2@30p4z+hweZ GBTN3Cٻ3@ uJE܅ޯ"K~g=9;t*GhwJ Fc4J@"gY&H&e D bgN~[Dt!./gYH~ iTF8>;~̐L#9 ɏ21ЅVaH"3C2: ɏr&D$oF.DU!BcXބ͈q|v^!x,$?@K@Z#mR t,$?@Z> 7!"Dt! ɴs1Vq%Mg,$?@۳] k6kI!23$ӭm϶ f&D.DU!nh{vb`e7 7!"DnWfH&?m.BTXY{M !nYH~ gg 4c|,IoBDBTiBc=eC`Iz"B{ed#9 ɏ,1ЅVaH"3C2: ɏlS1]YH~ gI.~q|v 48 ɏg u:i܅ޯ"ώ;^!mc(֪:̐LΆ|0@۳@ԡScIz":U+̐LΆ^-1b!uaXބNՊ#.N'bgC jh{{d CPճ:J?6]q|v^!/i,DβLL,DΆ]{ {qӈ֥=Lk&> ɭ9 ɏs]uis1CrkBc=c*VO֥=Lk&>Ɛܚmooy/Ƶh]ô@?aCk DBca`}1hK{'L|h ɭ9 ɏ610=6uK{'L|h [cg!1ޮs4P.]ô@?aCk ɭ9 ɏv``LVJ/!&Li~ć 5g!1 i*]u=Lk&>Ɛܚmo] uLC$YH~ zXufGk%b1bd"gY&YW1wJE {օ!D red"9;xB Fc4^13$DβLL"gթkhf]h*^Lt̐LliìMEi* D31@}c`u5L7/<3$90khwI Fc4hBLe{ @"gA2@ìMŇy ]0j4FS@R5֚]10̺TתVՅW0gϐL"g!?>>yߞ|rd"YfᏏO?'_ Y2P:UobЅ! +Y @"gY&H&r W;;1ЫNy.D̐+Y @"gY&H&r 1V XBTmп3Cy@,D ,$DΆ+?u6k↙!+Y @"gY&H&r6\?afC܀_e D red"g^B fǀWz 1u1+`"!n_e D red"Y9hwb+:x&z_e D red"CW .Bb^A3\Y@Rcڥ3ꨆ:xTCܠa,fTH&Jqvڥ\T=K|P.]uiÐL,3'|ۓ_XL"9۫n+K^uy1̺<3$9۫n ڥ@tԼ0~4L̐L좖4^1@1GKGգuKcH&rvQK5[H}U0 -1Ǣ/-iUϐL"gaj@WJW+FJc<]0kh:1Ї:vìXbţ%LW]bv=1̺}H&red"g͎>h5x7=Z{&>ϐLla͖^ aIFǰN: ^ifH)gY&H&r7~Xkh{g`X' oR7;,)wUf7 DJרcu Ԝ퍯&2@ۛ3Z{P1:uzCMN7YʐL,D rvDmoqbD :x`d:9;^Y1^Za̝ӪS̐L,DΎq0 תVhjb>:ŐLtred"g̝O+h{i)+s̐L"92A2&&2@tbU`)zt{+C2@,D ,$D*ӆfg@Nui̐SήL֚&JmB!n`ZZ6̐M&kmScN Qa0ч8'LD҆w+g85]JQхкafHvmXkh:2Ѕb_"gF҆O1mf*0 c(.ml5ڮ T<֥ w:~ vub`tAuirl vg`Qz:D,K=Z6̐|e Y /he`X'4z4QMX_k+CrӦڮnI+hi*]W]uc]%uiJcG3'aV+Ci,$?@ՊatҘь=Lê3ueH>`ɐL,$?Kd"g!1X2$9 ɏvI+hUi,I_W0$DBcdH&`ɐL"9 ɏ!1>k)ُGZ;z=\ D,$?@a\ R}=Ds.Ted"v00PqԪViЌ^!nAܣ U!YH~ C檰RN1mT=Ds.TeH&rE-F_:Ui &V)8Ξ@"gDb>:Ui &V)ُgd"z" SmfJ5%\^L=@"92A2@l3gv fAهW B V&@,D  nh Եau5.kfHv Ю'ՇyyTF{Kxah^u[hXTQgEZs7;1@~@gEhBإʐ|"g{]eW]}PTV}c.!n2@@3^G fd"gCh Ю3Ќ-!ٵUev%htIlA3k C2iZavhqL.isev-q^VJ4U Q/W 3$Y?\n@3lշnhD>khU`d"g{z ޠ3hUs]+ԼUKsAGv]3e4L`yhLC:1yh*1az Fc4>DŐL,cgfQ ,@,DβLLlkՍ 1:U7SWcfH1u呁B3KzyZu#Uk(fHn7h{c Īo<=Lk?=Ld֜ f[yBoxh&2$,DβLLl1^^2ЅVa8>;~ t,$?@34*Nō_#%C2,`ɐLl4sk ж?2ЌFQZь^ДzVe G3Fhouc(yY)]A&ޣC2/O ,a\}hw{`=Ɛܚm=Z >::DL=[sed"gY&H&red"gm[zՅ%xьF|UfU!y78^3@^ua ^i4Йz\nV ɻ,$9{>2@~@4:yAU\%ҪS!ywUzm^ua ^iuJ%yUqtHN1$.e ٫80@^10NWyӢ:>Nyt]s3`":hF, Q!4\:Ĺ /OY @"gY&H&m U Ĵ(;ƨF,mێӰZFN13$եnsm\u ж)bZLRKhS w\uJ;7#t@LiXިG\)ݥ fH^RQ?̕v6ެ*tH7XQӠӪS`?ꋳ:5t piPI+ t ",D2@#UyU7SW̌kD(Y Kq:X̕0j4:<3 JqeReN77 p]4($82Ar)2@\) FC33{D B)βL\ )X̕0j4:< P,$,tJ{s0̺ 6k;{f7D B)βL\ )0+ah.23Ο JqeReNg`1W ìјGfƹ@",ɥ8VGs0̺ oЩ$ +@",ɥ8V{s0̺ obЅq@Re gꆁahx,0 uJEf~82Ar)2@UwP,$,nUBB b9r JqeReC@ B0i "gY&H.Yhu -tr JqeRelЇz^+ "gY&H.Yh00-t982Ar)2@g@:r@Re g:2Щ$ Uyftn:ȁD(Y Kqګ=:lKқQgLFCD B)βL\ ^0 UyfL&@D B)βL\ ^ Щ2982Ar)2@vd*%M|ZU4m)t!*tn@",ɥ8۞;{4g5ftn "gY&H.Yhn0WZ&g5ftn>@D B)βL\ о \%ҪSi q2+ȁD(Y Kq#̲أuL|fZctnzȁD(Y Kq=zFإ ̴ ΍@Re gKa`LV}c.`3Cs3BD B)βL\ % T<ZEL|fZctn@",ɥ8] /ƵXnLk̐ܬ!"gY&H.Yg`L:mtiftn6P,$,tya`Iz"T2P,$,tyTJ Q13d:7@",ɥ8] t!*1 Uy2 982Ar)2@=ѣZ >\ ?P,$,ta@="O~BT̐C@Re g]πz>v)D.m*!982Ar)2@#إ1viPXV!r JqeRe.{982Ar)2@K!§UE=7!VLD B)βL\ g`0˒b{̐C@Re0j4fQ,H&JqeReNÑah:3\?ZM1 3_"gY&H.Y4f]ƪ3#{fkD(Y Kq: 7 Fc45`⣕jF+Z]3W fYRqzP,$,tzYW ş~0C2P,$,t F,I_+ bf&D(Y Kq:{~ 9<BG_@Re gSO!Sa+P,$,t{~ 9<B[_@Re g:S)r8AJ",ɥ8ԞBO!W"gY&H.Yn)rx 9\BJ",ɥ8TO!S W"gY&H.YԎrx 9<n!%JqeReNmO!SW"gY&H.YnX̕7fihS̐@Re gSX̕7XB2֐P,$,#-Ğ_7ȁD(Y KqӞb4(ft:AD B)βL\ ОnʣScIz"3d:AD B)βL\ ОzUh!/h5viP`tA^82Ar)2@㑁:hu]`q6s.2@Re gq@:#Dl]0d: r JqeResPTW;fd"Y @\ Ui9>W[fd"Y @\ohs|0N D ,$YV+˾g`XQJ V+@"gY&H&:Lk Х10S(xUkZ D ,$ٱ<t^71Ka!z!D red"Y @"gY&H&e D red"9;b`.-7^%Fq D ,$DβLL"92A2@,D ,$YgfXkV F3p!y;;wZ3@g400NWẖW 1 3$1xzz`!zT _} JqeRe۞%C2P,$,?P:UobЅ! ȁD(Y Kqڟ (=gLD(Y Kqڟn*^g5ft~yI",ɥ8O=Z5 TaƤFq͐|yI",ɥ8GU`%Ş2~ 982Ar)2@]!y$JqeRe|Zd"gY&H.Yh!m D B)βL\ @Re g垁uճ>ԱKXV=V2_!"gY&H.YhyuVRcL+ȁD(Y Kq_ ,I_cՙ*̐r JqeRegG֡WXV ί r JqeReg{~ ᧐#@",ɥ8n)B;_ίwP,$,?)B[_ίP,$,=S?N_ "gY&H.Yh~ 9!9CD B)βL\ B)p %@",ɥ8o{~ ᧐/gP,$,9S?n!9@Re g͞B)p @",ɥ8oz D B)βL\ > 1eIGhU+?gK"gY&H.Yh:2Лt3CP,$,_MTjR3Cr JqeRejR}gLr JqeReJ7V~`Qqft~r JqeRYgpd ĪUB7gt~!"gY&H.Yh?+:3\hZi)Lb^ad"Qtv$z`!z^Pq D ,$DkxZioPUaf?Ξ! ]X X^U k[Ѕѫ0(GB qdv{Bgat3fGͪ^0@g[F=zF*z} T<ta~=O~x̐L{gGzaXca433$ф82@g3F=zF1^_0Crrv 'moq=O~ ɴwv4!klbn5V#TҪzfH thF#qIC_03$ф:;q=F=3C2U`N*z}ф;0;?񀝳\USc`!z `J?8~=}qqd;BgatxlV:2*z};bW T{$ ߝMC#tvyb qHI+C8#u^阼r6 -DR1mfb/LSu^i:\)lOG1UU.b3;fP h3tv#ՅW [5x~&̺>OÊUX5|Pfb""kX4AIf]| -j 16k<7< O0HfT"T"ȅR3]P^ :`d١.F 4+" iQ>xn:~̺>Co~ꀸjqi1iaá.%ώ% P}ɬd o:;N棕d}V1f;g;Y${Kfgq!Dduz2/ϖC,'E]f.EuMo3|'gJ2+u}C%n[фaS-@)16uVUÁoɬ볰X, P_-.|ÏpPt?s~*u}v+9`y @yr|AUX,^/T+u}IO䄇k?[Að?@4 =H2Ls9,V|ڴa!԰ɩs@ɂ!Իd.kqP[l9k'JώJm֒Yg|B9Ct58\#{:#u}Vh]T JaӺhyE7YgafM7 mZ,V>89,zkD;!tli%~hB}ꀱއZLF/(V? N7F4}>{Yɬ볟*qۢjqM(R5jo>.ZxA|̺>Kͅ}uha(cU~3 ~;Fo{*u}W>Ba" 9q T%ԙdV2'̢X?@ABCDEFGHIJKLMN QOPQRSTUVWXYZ[\]^_7`abcdefghijklmSL62,nopqrstuvwxOI Eyz{|}~uVNJ>:/+'}=ŘoL!!/f>6 R3]OzwQF9acmD}xj 1G̴0[` U(Y6Hfa!԰;EͮxakPܘbDC-=|!u}V|AEȷ<ªg<>hIf%9](oqc|bE0>XDuB2bËpc0z # °mܓpo|!A7^If%ބk4hX[Kf߃W@Ɓ.-6-NbaPa u=5Dpx op CקYĕ?хAMPÊo*aAQIYtS7-$G:h9@'a;\}|'|򿨸+nZ#EA#Ebh'BCU- @U-.dV2+zTIK&}\T&e7&7q zW2hԻ7)dٲ7)}h6M:vK pl^ce#<5$Q't<<$ oPrR%ަԽIUGWB[n$Q't?a= 9( hkglN(BFdyG(̻$u`@&Q_NHlN<ǎPLlGB]C{7P(2' G u#&(>j01flEX}$0؜N&Ԇ4SvX(Ǝ` p$t۪*=2c/ ,{$ZI)P wɻ$?>Va\GDcG2-G4Wբ=W `Ͱ u).I5ٔWM^y/l6n[UGf셼K ,+&#&2aG HpƊBa/#.I{Q6d(w һ]BUͺ]fm˻]@u8R\m ȅx t=Wa9a"hhѻsY/ mS-uGBA Xt Ip@>(؀yym*ɻ$#a2hJuC` X#.(#p$ûX VA @sWh2 p$û8CōdzR&Og%W"GO(gJb^ث uF" r+s7mJݛt<]%+\awwEJHFNLxڙل9bA?F2e1ٙ~XXgIX^8ժ;KfI2K8Ɨy"xD` hhk%f2O%^^ޮG:) Pqlw9ao9B9dQ.I<.Xp!Ÿ#@611G* yp.+ #Cg!0/n>ZZd %w(S`Aq`)&p$C "hԢrKv& UB!!F u^d5QC6%wZA .dr}`sR`:R.ɇzDLAɻ]Ƿc9.d/xDLAɻ]*q7o:Fv )1 ̨sZhC41e%A ÔA8j , & HX I#LMco "ۦZɀ#n60ą ] LyE BN׏`0Pdxmp.+7wB%  :i].Vao:"L$L G6 ˟ݦ:gO O%@"j1 kiv ,P(.2#Fp@ȼe^w6h",z&s@h(r j! K%tB1v֏0B&SNG/0v$WSUFIX4.ASMZ  !"#$%&'()*+,-./0123456789:;<=>o?@ABCDEFGHIJKLMNOPQRSTUVWXY v j^^ޞ'w [w ݈T0tw {y~A3cnh ˄.oWZ3EM __xן\Tm]^?_~|{~3].y߬lCaݠoqW=W9}OoJlypoߔheuU\/?)cDSVUmj].}luW~luW~*LA7m;B-@_'2v:fpʻ$َ֌vDL)X ñamp#CA>LF\C̻$Ѩ{atv!VQ69iE04 ]qT'b):ATH 0dąF H ULN\€8wIH<8<n6;'|~~,K%hYAɻ]/O#z*j1:dZA`H5[8j6Z2Ht% f7 r) mSA EμK`sUTlq70ą ,PPW0 "}]8kcў+ 6'X1Q $ qa GR%؀0bm@ ڐfjavd 8ZɈ#XxZ:LH4q.+uUй(e w F Va2hx`bPf`s 20D:yR4re-G% :# \*0 sW.y c>q,v]ysY5x^<{λ$?^_ڻ$]*\z`yk\?.oK?չ?q,v]%җ=VK|.a= hC( Gh)!&CyUG)P #yoVЌ }|{}Mopz(y/G.anV e_V w9a^Λ!6A"pԌQP0wʻݼ6,lL[Eڐ>:"jE{CE0؜wv^ec+E>2t32{!b x'L \A a9)儻>^ߚǶ)+tlZνk7R?L\v}Ukgrwv|叭~w72lE0/ow؀fѵ3fmYL5[ j:"I V;IYeEي1(B2p1y^eVF\Ԛl`25M eZ`埼R(( urAcRvő X`ԏUGͰ pA I)Gݼm@X/꾽@EQv'樂 ןq}w;Ҳ/ !f+X(Ǝ`t@ E! 1`QX=r.q6#af mHC+p! ;>RGkTbuȼKVP-Vۦ{!]ve_TFA;97/,&thԟs{ }"/=5 Yewܽ:𑋏ͧTҰIHx BKP'P8 'JAGQ6%SwQH6"BTKEJ,+L`9]&zBq FB`Y\@%`Bu>A>=3sr&[&EC ȴSHӥZ*&Ja.vB.z! vBkthԟ̑ jjb84;ʞNBCR%0ق #v| z?PM\ C! KAC(kC5A.QIDa[RM}zJN1PDсl(!rE-RֱLNգQ2sq}1|d=_\ăW6q]\-6w(rM (9l=/8m#mք8A(d&\IQJ{RȨ q #Y%NR<(\bU+ @6\L(hCz]-!?J.{2lEе3 6' >z]λ)IzwAHy'9J*v?TR(F_"mHc0b>:⾁U")[xlr^Λ,SC ]̪Gd^6Yxlr˪Nfw72MzٗUWnzlV}ww>Y[mVwUY{S'ӇGf;mֲݔKM_򧼛LWeyfu.ŲSɩPQfɩPQ_x2̐Rn;؀+doLg2i60X`9a"էs!5(&@-I`sD[hϕw[]]nYULu\}kg2-H#aе/VS2Y\llkgIZbw$qFLV=WP Ȍ[xC-Fyi-秮-g25(&@-I`sD[ڙw[]]nYULu\UF`t J Œ:ݼmP/,Fh&J ft+L`i֐?8^}գQ2s{ I-aR,oC(2eC.u,DK'&TWeCނ ;BEB`YcP% 71P)ڴ@%&z^1C Π/R,b e b,hvԊQ4ր,yC;E"Mr¥]a1| pTaĎ/AY2I(D/!!#FVb dգQrA%LIJ(SlB\^MdY K]4"˰*h¤'Ѩ?ف ԄMI!S']ԣM©R%r,D%rED #"rs{ ۘBY2I(DѨ?(2j"&8pL*ld%ħb@+d6,,G:V,SMpHEFMȅLCFZ²(he̵&T3tȠX`ICwlJ9;LM}GS%~e]7\m|IeY/M}_/?`a^6wmLU*ݔwZ2-Mf5+'y#Ӧ]/{-w;^~s伫LYѵe_V.ntն+e靬;s{{]Ζ39߽.0<{0`V8Q^w)})ru*l˦Ƕ)+,Nv+m;+mmSԬ%ֽw{睤y??5K`=[,nW3J 'D67{9+̤12=O]sJv ANYCODE.DOC  !"#$%&'()*+,-./0123456789:; ro <=>?@ABCDEFGHIJKLMNOPQRQSSTUVWXYZ[\]^_`abcdefghijkl :mnopqrstuvwxyz{|}~2ONE'Vu]>1^-+HG+$i]/gn=p cAe#H^ ,C{u&7(.HJ$o f b QXVE={$ҽ::H Á , 0EVBtϠc Q0rEFf@գQ2G9P٦,}s?!ipS>>c e 1E}+8@:p0*I(@qB)2R!7 ,,8YsU{Ǐ?V PMpHLc!T]p 5Fe7frqx1A51P)׹=<I"^N$)j" Qt b6!m**9E+)r0PcpH1f}s;L q?9~1]}bwq?9~p<W{ 9^c][KPK@j e[*N1P.&2*.x =lL,b}c$®0قDx ƤRpHEHS<)Qi!pe.Mrk cS‘D0Iy 6$;hSK}Ʀ®aꂷ!slB0"C6RB&+J7!,81 NRZvqQ8E)m!Oc0ق^H{#6L Մ\4tA-aWll"mJ?߻8]dQX6q0T6e&.)MR8h!\'(QKYF,5`z4OcSS(X& uA5{@krdiv=)z58mVh 0)ˈr =_,\*$EKQ8F(2ZÂζ[(\ 'D2! Pcn B5!Ź;䟀b R -XB)a%\I1]='ɹV$PֱL6:0TFM8Ƚ2CQ.ڔ=/ -XS>>=g1e~Qo>>gyd0zvf}sdb~cGus#!EeI-pHEpD/2Ŝfmj4FZf ٧ g.~Bh}1|o H˔b,V ptqQIBٝg1PPLe>y_ܙMnheQeTnj0ᆞ/8:?^tI$@S6euqEHEDĝ!m=gYb؄VkwfmHŝ~ \Da32)}]N m=C_]8\%Хu0v ժs{ Yb ^-e\)xtfM4C +L)OQJ&TǏ#Vah R4yȅLCܧ&)1EOWFuDPMXa6R` .bFF&DK1]='Qd)dR4Tܧ.5(*$h18軶06Ee`2kJNaE=R E1>-4R< ^nWl)>o).C,C  /7R\Ƨ•(,q=`Y\E+du!h(Q4!iY-8!E(4FGQj RLWFu)eb&[4ך"&7Ȥ&27,"%8]H{()FY&\MpH%7! zCل/`Y\ž/`Ȥ28 #v| Q)ZFEaM8yeq,S -X!mXd;Ȕ{ OaY\% =%Q)ZF 0@.떨 B(eTpʞQi+DCH+8}Ʀc]["S5)e=Eِ [U4 5.8D,J%,bk cS OA5:IB] ?FF²IGEKD[C(F4o"لj"3jEhe)LWFuDQT)˨WKob $:PSIAXjF Hi M1P)J!M!Nd Z ,Q+d-djL29E d-S88ןEJirLhEQ1]='኶+Kk\Ƨ4222(SG) T Ѩ?dvV-!idd2k TmU Ph%D Lc :dvV-!idd2P&bO]P'P&zC21(l1H##-$by\FB2;4225Hg&T GQt[aT)!:hEVR&p|)z>!E 4jMʞca iPM8MJ )z>Ɛ iddC5!EKA 4FK$({R$$A!E+硚HĀ e )bFF1FDr-)2E 8y,OI"gh X):APMp-&z>oQ uՁj2Yi 1jC21(l=I"gbFF&@uQH18+422MT=/-pHRuI"gbFF& i+x R|\J(d'XW^렰vQ ׁ8A&z~ 9lk36#XLPMXezPJգQr5B&X"!f2M =j;i ZB[cgk\Ƨ_E,\eQ iw(EFm+t1HCP@B}UJiW1HP2Ƣ,`a_ZI 23p1P܇j8WXgdm8A[}@;U*!U1PGB2ܑ澊 U]sږ0 ( (2?=/nB, e(-b iwX7s1HP2Ƣ,`aRTLڎAe܇1eH&V$j{8(CJqQ5DնgFYF S$Y}+aѪ+U1bҩ wLV!F+A+;bCUZjG G+<Ӯcm,dEY$}2gj #>'HLjA( G*J>#erg1bҩ wU\QgGd^?13{wsv3{wsU1/7l6k_ޛ?z7.Qf6ͰQkrp6e|ջpAIR8Qe#Q)8(.QI- Tr t ;,{Ͻݼs0ۀ>@}Fl16ؘF` sfx3ܟaVwY=|Nl=sg }96f}9nb7nBlLq}swY]߭o>h]׹׳[.3۸#6ߠƃp~ m7.ՏՏ?ZKcug4dEY$}XVږ6C"dJNRTLڎAe܇1eH=ņ6j[9Db 1(|YYVBr{PergJOP [m2"!>xr6t  h Sb2I24PQd'$KBD VAW&L+iU[:TWeRqXWwv( !iEFYlhU}FVێ3!4Ne\Q}\RU8Rq2XcDb2LRT3e]\1Hh羒YVme`6rEP^GrEU̳v(hI(2B *JEgd(z6!h KdvYv  -aEFo%U檃j2Uնca-e#0*WU=AKlhq6UUmGr}E6}+ʞY&C]LWFɼ.lڄ,\9* ekDˢG_n1Lנ Hr! RYecz4Ot$z>3j%5`n%D =(R.eSx RL;F ~4ޝ.az4O͛7sp Bv d0n 4cQրBA6󮈑kIr턺ࠚ"KAd Ձl4H&8&z^V15x -yRD& .-pH! hGd޸ }[1 h .`c1C]?h=|Rݨ[r7 \xظSܾ}m Ɔ}+zR덃0o;7סm m\Džq'_덙ƃ96o@`r&1;[uoh6M~PuƆ>&g&BkCkh 5Z>{qKCkh 5ZCkh 5Z>{ZCkh 5ZCkh 5F=|:z㶆ZCkh 5ZCkh 5F=|:gs",EK1]='a 0TFM%pHqwqhZQp!z^X4eh/C& 8Gs"Rdd%SYE=? oA&LcpH02BczQY# V6h r Nl$SAL!EèRC$uъȶA5>X!30=)z^:Ge;9D"N!wR8=2 &0\CL-,b_!X8չC2N Y=aSbSbйYy g元 ÿ"?^_8Q& 2+}`D$>2ïe`ȬF/~xaWLϗ ?0+}<_60l 3{w1E_m/ן[/l7_fo.,/ų%@L#πhsq|ջ0OGz ^nr]'WE=ðȤx]&no%X!X¬Zb/ 6j i}-1 6 }/_5H\E)a #]Ѩ?O߅]L&$ZF)2^CGaY*ypHG^OO y -XkM|Ee)mҤ ciB-A:Ge;Yz-k(eQ ewր2Յtvb82FM,yDtNP0]='z8Ѩ?O߅]LWFɼ%2VR5`+:(\I=? iT6:-$Bv1]='Pp$zZփjB5aE"9'!b Gf%BUQpT>ǫcM׏>>&V©0M8b)yȥhhrd;P^-ErNM4S.Q&v/ýM.;:6qnzعu+_;^mb2YG'!mգQ2 X-^"S5%dFF_Y(:Ň(kM$$WRpHP[41lBNcXez 4:I"Y%LWFuH%J,A`2YG'v1]='+TiѨ?O@6Cd"+!EKl''y=]Z² WR4ȴ)  ndy)Z"I@ٝGsSbVnc?$㔰ب5?<$㔰ب7ts?;cwQ^ޛ?zGw'u.Q{gVbdE={yoHpAIGhs?;cwQ0̧w'u.QdE=ðddf |2YC2za>!Y=ܯ_Y.0u?_Y.rK뷠[>@k1|mx>!Ź;.,\1!iְh8xhQ6:F )z%D y4H)a1g1qJXlqJXl:?2zyo] ?2zyo] ? ',uPLek,IRddC̵&zQ$]\<][<6?|?vqnzعu᷸rnŽպp|[ ,oCLe!E)2RչMJ PM\력-1%FY&ր,r%ed"Coem" 늤eQQ82ך(-)mNJ NT9Fٗ$E:(D0ehe L^sCfa0έge#H^έ>\sg1DE4RdtgY r ^y gr{@d^q&7HXVCa32tg65γ7h߹Ɲgo.` γ7^ 2wnq[7F5ç}f8}'q' 92k c Q4p{~sdžDbBugqQ&;g _}p6n_8{k\{?v(ANYCODE.ASMJ  !"#$%&'()*+,-./o0123456789:;<=>?@ABCDEFGHI9?LJ7~x5pvcWp6$@ B}{ /iaES;8eyH#r{%yg6#$!u K<SH {IH.5]YJrKw~붅2@Z) ؒ -%)E6B~V{HBҪJN)ńSvg=! p8@܎7K>,vOa3BR)~}B*˧-$;Ҫ*M=1İ4B\wqf)~ i̽ {y7$-8ӷ[{1&yܾB*s@ZV8//x-.ꌟB YL8eyҪɗۑfɇV8ǁ|t#{A]ZVx'bƑ\kb.,)~ i̽ {y7$-8%,KԿ-8sJѸ#& 0YNo{y!V{HBҪD⵸3~ 1xg1]YOH3r;,ҪI|I~ ·}VUn)$q$X3xݶPNqXЂ V%iY-SH6>t UҪ*<~/7wRuO!,&< U'v$bV8G _>{Ҫ*M=1İ4B\wqf+^-Sk,̽ {y┢q 3s/d99o],v8 VX3K\qƂ;n2Vۖ)w+\wWg|>kiUO< *d/ VU1ȗMᵸ3~ 1xg:zUa?VLY)lFHC?ů@ZVx'b7{qM4B\wqfUq|ΆS5`KҲ&^qMl:ܤUҪ*lˍZ\To7m%j=T^!S!~}3k3|zOT_?=n5ؾ/ow?os*9M0HO_Ā`8سSsoj3&";> > .ڌ9IN||-*jʋ"'z嗢&Hۊ`pM1' TԼ@e̳MHP9q\YDAJ%bX*r"/JTn5T|NDT.Q͊Ǯrꮉ;m~}´!p=;:'z啕&Hۊ`pMq^aKNDT Awt'9QP*<\% Ly^MHP9q\YDAJ%bX*rכQpxxy7G/=Nm6+ } CN5q{Lv}e*Ao5Du0UA g]k-#'r[/OT .p6A޽Ή&;;cgwD`isT׎TVk⎈ ќh+S"\cjs:⚸#8m~}^p!uN4ىxݩ;#b;7Ose5=vr"\wD\T> RN8m٬TǮp=kT׎4ىQcω`Z*(!'r[QA\DDsNN5;عy+=*AtE0T #vyMv}e*W +!5;QN4"z>7*VV \YDAJ@xh,9d'u{쎈<͕<۷n} k*uN}8Q*zn+I<r0G:٨\%`yԭS#=n tDb~›W?|}PCN#*ߡ{5xh9.'D#sr?Svg=Ҫ}"_n?V[)lFHC?ů K7^l&CwNGr!ջ8|_xҪ~ i8}>g) ؒlp{!& K6"!gsV8~i5B䋴*\sO zm;Z_lG-WiU^Zlg1iBid_Ä0C\L WORDSTAR MNEMONICS Her i lis o mnemonic use i m Wordsta 2.26 foun thes b DDT-in INSTALL.CO (the star a 75E6H) supplie wit m OSBORN I hav trie VER٠ har t b accurate bu yo ca chec ou you versio o INSTALL.CO͠ -- I'll tell you how to read the entries : SAMPLE ENTRY (dumped by DDT "D" command): two bytes of nulls separate entries / / 78B8 41 52 4B D3 B9 03 00 00 ARK..... A high bit of last ASCII character D S K T N ^ always = 1 (not printable) ^ ^ ^ ^ ^ | | | | | | | orwv=jȉ2-Լ jNEpEg}5p6$'#qOh_J]p68$'Nx=M\YD%R[rE1<6]#vMvie*gج&#'y6A9d'V5&X*rNN cgw̉Fw}*_DuwT!1n9F*0Q>OUѻ{ ssac6ͫ>ΉK.Y 5,!p=x Mv}Lvә+\c59A; 5K"v9m6=MHncW,sp6ω&;9ȉ(QGp}N%*?@AU!{iUȿ4BO<-k䚌Swn2lIZoҪ*d/ 1D|5_%KBҪ'r#bx-.ꌟB Y)γ@Zp>ɗN~.6#$!u K<SH {IH.5zgX3m e w-ؒu[d?Ȧ_& VUc _n/Z  igin address (inverted) | | | | | | of function in WS.COM | | | | | | ^ |(= 03F2H) 78C0 44 53 4B 54 4E C1 F2 03 DSKTN... two bytes of nulls before next mnemonic / / 78C8 00 00 50 4F 44 42 4C CB ..PODBL. That' th eas part I' doin bi o hackin becaus don' hav acces t customizatio notes an I' jus plai curiou ( hav suspicio W wa writte i FORTH languag I' jus learning) I anyon ca ad t m meage knowledg o W mnemonic an functions I' appreciate it. J.E. Crowell San Jose, Ca 10/29/82 MNEMONIC STARTING SPACE ALLOCATED FOR COMMENTS ADDRESS (HEX) ======== ============== ============================ IOUTCHR 0106 PATVER 010C MAF PALT 06B5 PSTD 06BA ROLUP 06BF ROLDOW 06C4 USR1 06C9 USR2 06CE USR3 06D3 USR4 06D8 RIBBON 06DD RIBOFF 06E2 PSINIT 06E7 SOCHR 070B ULCHR 070C PRINIT 070D PRFINI 0710 CSWTCH 0717 HAVBSY 0718 LIBSY 071A LISEND 071D LISINP 0725 POBSY 0728 POSTAT 0729 POMASK 072C POOM 072E POSEND 0733 POOP 0734 POINP 0737 PISTAT 0738 POINSK 073B POIM 073D POIP 0741 PUBSYL 074C PUSEND 074F PUINP 0752 ACBSY 0758 ACSEND 075B ACINP 0764 ACFIN 076E ACSTA1 076F ACSTAR 0777 CONFIE 077F ROTCL 0786 EAKBS 0787 DHMILE 0799 DHMIFG 079E DHMIN 079F DHRNG 07A1 DFWD 07A3 DBAK 07A8 DSP 07AD DBS 07B2 DLF 07B7 RLF 07BC PHSPC 07C1 DNPROS 07D3 DMJWB 07D4 PSTAB 07D8 END OF TEXT SGVER 010E WSVER 0110 COPRIT 0117 SIGNON 0153 IDTEX 018F PROTTX 01D7 PDRVTX 01FB WFLAGS 0220 (?) WRAPF 0220 (?) JUSTF 0221 VTABF 0222 HYPF 0224 SHOWDF 0225 SHOWMF 0226 PAGDIS 0228 LSPACE 0229 DISDIR 022B AUPAV 0234 MSGLEN 0235 INSTLD 0236 PCLAS 0237 SAVEND 0238 HITE 0248 WID 0249 CLEAD1 024A CLEAD2 0253 CTRAIL 0258 CB4LFG 025D LINOFF 025E COLOFF 025F ASCUR 0260 UCRPOS 0264 ERAEOL 026D LINDEL 0274 LININS 027B IVON 0284 IVOFF 028B TRMINI 0292 TRMUNI 029B INISUB 02A4 UNISUB 02A7 USELST 02AA DELCUS 02AE DELMIS 02AF MEMAPV 02B0 MEMADR 02B1 HIBIV 02B3 HIBCUR 02B4 CRBLIV 02B5 ZAFCIN 02B6 RUBFXF 02B8 RFIXER 02B9 UCNSTA 02BA UCONI 02BD UCONO 02C0 SWIN 02C3 SWOUT 02C9 EL1 02CF EL2 02D0 EL3 02D1 EL4 02D2 TRSCR 02D3 TRSCIF 02D4 MORPAT vͲWS30.DOCY  !"#$%&'()*+,-o./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX۟I^_NZcM *Y_^xVYYքkZP`ټ F5 x;?9~8qwꯏň lM tl lT|QðW ' pƚ>;z?:959~yW<|ׯ's׻sx׻57{ڿ|Ǔzw_?qyv{^x8:7<[;z3xuޝϣ98am}556*PÀX6/|Fx8:ѓ5ޭw8A8wZCӻ;,:,'0|5Wk?YS>Wrwӻ7Tkj *Y_﬩ *`TI:{*ZS.V8ynMu~p'NxĠ #i׊?[ V:bt,*XStڡy!i׊? ]; 01܉1Κ 1q@n/F^l6 p^att`M%k*/ ;qTk*Q;hA,UHN|jE}{֚jML:F;nGq;t"d:B:F8y|`{tk*g oPaQ?Qv/c'(*{*z]TNA:/TlrG)'v%wtF8&4Ee/ZEK]5۳g1ttKU vp'NxĠ vNxaMb_5ƚjMQ6ė=7Yp˞nԑ5ID|m#kGiB|ݗtڑ5I!6Y8!vtd YC*tw:k5 Z:Jd 鸡DPI~C!5Yud 5(5Dd UҮ5T6E?5t?6J\8 DkTh"kh*]I8J6ֻ:/rqCPS:j$NȚj 0SQ6dMF YC5&/|wonT3YSU89tU]p|ݚ^0}ޯ=fzgMԚOԂQH]aR]>Yi{jMB:Ђ!,UHN|DA:FNPgB<]ٗ .z#pzdтAvT$8K9(HH]8zTMȣ5T8F‰ K4p(pLPFU8iyZC*4HTh</M( ڞUL}qQ 8~ QHڞUR v ͋5՚ A#CZQ0ݕ5՚6T(> Q̂(֐*t́G-ШiZx gဉuт!EGT1P!q@V}k(7MD Q8]ZCih!8a! ˠ8 ֐J(DQ-DF%XC:q1U8Q;|P`! K5ˠEu4U8( r*Mix*Q S? PS^84zȝ3#ʾSR*Mi1DM(!Ox)/A T ZZz/򔔳T*8D?<砬x"!BTE Ph>RES: Dͪ\WeG!p#YQҕDiD3 C=|J65cI Qp,HʾSR"w> -|j4U,( r!DT(xk~l]'>uZ-})XG-"SREk~lڞUxRJdG97)QZ/9C&u:Sk]D+k(M~ЅU/xx}Ő' *@z [CibX-VbX-VPhX-VbX-V5&Z-VbX-Vbe %}8%ч+pLė=Ctak8&k5k\Ƨ_E,\&b)HAr-9cgMEp}` ;4?(t$HT4/cwaM|"콰#dͧ߭$~ iz*/' *`Ѕ_(keOUhLI9c!gQ\/D(ta }̢U&qaD cЅ11Vњ_@|-Q.Y,/{=%X- Ǘ=GѾXX/{BTXFR`Q~"iu*|J~EO:bpweO[#؞=)XG-܋VtʚtB|*uD۳<ZQ8@G-܋V5- :j˞VoOWQ)gO;Z/"\?kF˞V*gO={ FG;g:"(%8&˞VoOSGT={S89@ : 9@G,5mG/{Z;SlϞM( C`ȣ '֌<_jU,; ~RthJGqh_ʉ5Ra&'k~lOT;gƔ!gQ0+EGgN|0C|uFR`笡YSX2X~X2A C.l m*DA:Fšj 0S'k~lXG-"w>Ό))C΢& `5=PA:RN.֐ 3k~l"qaaHtaZ-cB셭YG%T k5L- :jk~lXG-Q2haQ rAVXS!f*qLب 0QE : ]ZC*Uh^Q?ҕDSR)Q̂))C΢5互 i W 3.3 Thes label ar describe i th W 3. manua configuratio guides bu hav differen addresse fro 3.0 However i yo combin th manuals thi list an debugge (suc a DDT SI o ZSID) yo shoul b abl t patc WӠ 3. wit n problem Th definition haven' changed bu Micropr ha compacte th cod an gotte ri o th useles 'reserved patc area the kep leavin i 2. an 3.0 Thi lis wa extracte fro WS.IN usin ZSI an smal MBASI utilit whippe u fo th occasion. On hand thin abou th lis i thi form i yo wan t writ assembl languag patche tha yo ca za i wit DDT jus writ you cod o D statement precede b th appropriat ORG Fo example i yo wante t writ som specia startu sequenc an pu i int th MORPA area yo coul writ som code... (the address equate list goes here) ORG TRMINI ; location for terminal init jump JMP MYINIT ;(OIDNT`hzp@8_8cPڞUǙFR`笡-$*Q |t #^tdku%єqJT1+oє80gy}DR+^P`! K5L4jʋąH\XO]X*Mi1DzF;qPД#Jx!qqCMy1+*r`/ . 8J9AQ )CFSZ 5})4%!y = *$8 'pgoU>Dj8Ý8 ,DT1lM&ZAJ<%~U4@Tг~l)vr]I4%~U8QWP`ZXG-AhJTєQa` ±SE|iPPrPhJA&hJG( yCMy ZxeՋ5})5'OT!= 9e -D/:p'NxFSH QȪb $L'YtS 5LDx)/K=UcA=|LPPrDqfh54jʋ\*rQ!cЅє.l e_ ))g UǙvW*woUN-xRJBD\#Tk$D2|/*XC:$D3 >f*"McI'8#~%c@Zbq`FOT5$9[ݏV۳DŽAcLI9S Z/^5'*6bfA%#b $L'pC 0Fn&NT`$_ zҳjܒ">~QrD>&c(LI9k5iڞuDi80C=ϭ!ڞU8Qi~RlM  patch it to jump into my code ORG MORPAT MYINIT: MV A, star o m ini cod . . . RET ; end of my init code END ...the assembl wit AS o MAC Befor yo patc you Wordstar yo wil wan t hav installe i s yo won' hav t worr abou som o th mor mundan aspect o Wordsta initialization Afte yo hav installe Wordsta an assemble th code yo wil nee DD o somethin lik that Sa you cod wa calle WSPAT.ASM no jus za i th he fil withou displacement... A>DDT WS.COM DDT VERS. 2.2 NEXT PC 4600 0100 -IWSPAT.HEX -R NEXT PC 4600 0100 -G0 A>SAVE 69 WSNEW.COM ...o whateve yo wan t cal it Thi i muc nice wa t creat larg o complicate patche tha usin th INSTAL facilit o eve DDT. 'nuff said. Here is the list! Jeffrey J. Nonken ; ; List of Wordstar 3.3 labels ; PATVER EQU 010CH MSGVER EQU 010EH WSVER EQU 0QU 03E3H PAGCHR EQU 03E4H SOFTCR EQU 03E5H SOFHYC EQU 03E7H PAGFIL EQU 03E8H MARKS EQU 03E9H PODBLK EQU 03F8H NOUFF EQU 03FCH ITPOPN EQU 03FDH ITMIJ EQU 03FEH ITBIP EQU 03FFH FNWSCM EQU 0400H DSKTNA EQU 040CH FNOVLY EQU 0418H FNMRGP EQU 0424H AUTOBS EQU 0430H BSCHR EQU 043BH NOFTAB EQU 043CH VTAB EQU 0489H XTAB EQU 0655H FPTAB EQU 067AH CLCHR EQU 0691H CRCHR EQU 0692H LITCHR EQU 0693H DIRCH EQU 0694H STPCHR EQU 0697H ERELCH EQU 0698H POSMTH EQU 0699H BLDSTR EQU 069AH DBLSTR EQU 069BH PSCRLF EQU 069CH PSCR EQU 06A7H PSHALF EQU 06AEH PBACKS EQU 06B5H PALT EQU 06BBH PSTD EQU 06C0H ROLUP EQU 06C5H ROLDOW EQU 06CAH USR1 EQU 06CFH USR2 EQU 06D4H USR3 EQU 06D9H USR4 EQU 06DEH RIBBON EQU 06E3H RIBOFF EQU 06E8H PSINIT EQU 06EDH PSFINI EQU 06FEH SOCHR EQU 070FH ULCHR EQU 0710H PRINIT EQU 0711H PRFINI EQU 0714H CSWTCH EQU 0717H HAVBSY EQU 0718H LIBSY EQU 0719H LISEND EQU 071CH LISINP EQU 0724H POBSY EQU 0727H POSTAT EQU 0728H POMASK110H COPRIT EQU 0112H SIGNON EQU 014EH IDTEX EQU 018AH PIDTEX EQU 01AEH PROTTX EQU 01D2H PDRVTX EQU 01F6H ABSVAR EQU 021BH WFLAGS EQU 021BH WRAPF EQU 021BH JUSTF EQU 021CH VTABF EQU 021DH SHYPF EQU 021EH HYPF EQU 021FH SHOWCF EQU 0220H SHOWDF EQU 0220H SHOWHF EQU 0220H SHOWMF EQU 0221H PAGON EQU 0222H PAGDIS EQU 0223H LSPACE EQU 0224H MOVETY EQU 0225H DISDIR EQU 0226H INPORT EQU 0227H AUPAV EQU 0228H MSGLEN EQU 0229H INSTLD EQU 022AH PCLAS EQU 022BH SAVEND EQU 022CH PTEXTS EQU 022EH POVSTB EQU 0230H HITE EQU 0232H WID EQU 0233H CLEAD1 EQU 0234H CLEAD2 EQU 023DH CTRAIL EQU 0242H CB4LFG EQU 0247H LINOFF EQU 0248H COLOFF EQU 0249H ASCUR EQU 024AH UCRPOS EQU 024BH ERAEOL EQU 0250H LINDEL EQU 0257H LININS EQU 025EH IVON EQU 0267H IVOFF EQU 026EH TRMINI EQU 0275H TRMUNI EQU 027EH INISUB EQU 0287H UNISUB EQU 028AH USELST EQU 028DH DELCUS EQU 028EH DELMIS EQU 028FH MEMAPV EQU 0290H MEMADR EQU 0291H HIBIV EQU 0293H HIBCUR EQU 0294H CRBLIV EQU EQU 072BH POOM EQU 072DH POSEND EQU 0732H POOP EQU 0733H POINP EQU 0736H PISTAT EQU 0737H POINSK EQU 073AH POIM EQU 073CH POIP EQU 0740H PUBSY EQU 0744H PUSEND EQU 0747H PUINP EQU 074AH ACBSY EQU 074DH ACSEND EQU 0750H ACINP EQU 0759H ACFIN EQU 0763H ACSTA1 EQU 0764H ACSTAR EQU 076CH CONFIE EQU 0774H PROTCL EQU 0778H EAKBSZ EQU 0779H DVMILE EQU 077AH DVMITR EQU 077FH DVMMIN EQU 0784H DVMRNG EQU 0786H DHMILE EQU 0788H DHMIFG EQU 078DH DHMIN EQU 078EH DHRNG EQU 0790H DFWD EQU 0792H DBAK EQU 0797H DSP EQU 079CH DBS EQU 07A1H DLF EQU 07A6H DRLF EQU 07ABH DPHSPC EQU 07B0H DPHRUB EQU 07B4H DNPROS EQU 07B8H DMJWB EQU 07B9H PSTAB EQU 07BAH Judy Epstein, COMPTICS, 3303 Dato Ave., Highland Park, Ill., 60035 February 16, 1983 To use debug to make the same patches to WordStar as INSTALL.BAS + WSPATCH.BAS for v.3.2 : DOS in A: WS diskette in B: DEBUG B:WS.COM [just enter the numbers a 0295H ZAFCIN EQU 0296H RUBFXF EQU 0298H RFIXER EQU 0299H UCNSTA EQU 029AH UCONI EQU 029DH UCONO EQU 02A0H SWIN EQU 02A3H SWOUT EQU 02A9H DEL1 EQU 02AFH DEL2 EQU 02B0H DEL3 EQU 02B1H DEL4 EQU 02B2H DEL5 EQU 02B3H TRSCRS EQU 02B4H TRSCIF EQU 02B5H HETHBS EQU 02B6H APLFLG EQU 02B7H MPMFLG EQU 02B8H DEFDSK EQU 02B9H SCRLSZ EQU 02BAH CNVTBL EQU 02BBH MORPAT EQU 02CBH PBGMEM EQU 034BH ITHELP EQU 034DH NITHLF EQU 034EH ITITOG EQU 034FH ITDSDR EQU 0350H INITPF EQU 0351H INITLM EQU 036AH INITRM EQU 036BH INITSR EQU 036CH INITWF EQU 036DH NONDOC EQU 0378H DOTSON EQU 0379H DECCHR EQU 037AH DOTCHR EQU 037BH BLNCHR EQU 0386H CMTCHR EQU 0387H ENDEXP EQU 0388H RVELIM EQU 0389H RVQUOT EQU 038AH TXBACK EQU 038CH VARCH1 EQU 038EH VARCH2 EQU 038FH VAROPC EQU 0390H COMPOP EQU 0396H LOGICP EQU 03B7H HZONE EQU 03C9H VOWTAB EQU 03CEH NONCON EQU 03D3H BOFCHR EQU 03DDH CONCHR EQU 03DEH EOFCHR EQU 03DFH FDTCHR EQU 03E0H HARDCR EQU 03E1H LFCHR EQU 03E2H OVPCHR E nd letters from the left column] F 077F L4 03 1B 53 00 ^PQ SUPERSCRIPT F 0784 L4 03 1B 53 01 ^PW SUBSCRIPT F 0789 L2 01 1B ^PE ESCAPE F 078E L5 04 1B 48 1B 54 ^PR OFF EACH SCRIPT F 076B L4 03 1B 57 01 ^PA DOUBLE WIDTH ON F 0770 L4 03 1B 57 00 ^PN DOUBLE WIDTH OFF F 0793 L2 01 0F ^PY CONDENSED ON F 0798 L2 01 12 ^PY CONDENSED OFF F 079D L3 02 1B 40 INITIALIZE PRINTER [PSINIT] F 07AE L3 02 1B 40 FINALIZE PRINTER [PSFINI] To change default values : [space bar to keep] E 360 HELP LEVEL 3 03. put in 00,01, or 02 E 362 INSERT ON FF. put in 00 for OFF E 363 DIRECTORY DISPLAY ON FF. put in 00 for OFF E 3D3 PAGE NUMBERING ON 00. put in FF for OFF E 386 RIGHT JUSTIFICATION ON FF. put in 00 for OFF E 389 HYPHEN HELP ON FF. put in 00 for OFF E 39A HYPHEN WORD LENGTHS 04. <4 for shorter, >4 for longer W Q When using WordStar, you can now use ^PQ SUPERSCRIPTS ON ^PW SUBSCRIPTS ON ^PR SHUT OFF ^PA DOUBLE WIDTH ON ^PN DOUBLE WIDTH OFF ^PY CONDENSED ON ^PY CONDENSED OFF ^PE4 ITALICS ON ^PE5 ITALICS OFF ^PEE EMPHASIZED ON ^PEF EMPHASIZED OFF ^PEG DOUBLE STRIKE ON ^PEH DOUBLE STRIKE OFF ^PE8 IGNORE PAPER OUT ^PE9 ENABLE PAPER OUT ^PE< UNIDIRECTIONAL ONE LINE ^PE0 LINE SPACING 1/8" ^PE1 7/72" ^PE2 1/6"[DEFAULT] To work properly, the controls should be nested in proper order. Also, WS does not count ^PE as a place in line, but it does count the 4,5,E,F,G,H,8,9 ,<,0,1,2. Since these are printer controls, they are not printed. Thus the line is missing these charactgers and is too short. Therefore, whenever one of these characters is used, insert an extra space for each one used if using right justification. And remember to check this if the paragraph is reformed. ert an exvWS-ZCPR.ASMY  !"#$%&'()*+,-./0o123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXJ»ōt }^ma:ZW6)l>6?BIP-n%t_5 sTXZ2ꂿ.OQyRIP_l}KDt.jcZCƿw=֬,B[ؑ 0bγqlѨ=(fЅ_ݞ` {='-PLŜ9AI15xnKLkh urB86\Ipܴ{gg46u[b>`%2p*eALm8eD% 86=NiXr`M/G86 | ctuͰ&/K4J%ΣCIPQ~,n%~5[9ZW6]0{u p|L$Pc[M˨KLЅ1u[ĉYs5*'àۆi%AIP1__n%P[07)INVvX[ٙ$\ӇqsFDmA3N+ 鬿X=' эcSkpBJpM⎈|$( 3lmelYCF;t _k𷨱㷏J@y yq$:tǧ9y8~s~ fOw;?͋;Rgx4g4g̋;<w4/Ӽßmq$лo;%AIǻd%v/䌜3rFv|22.WGOgggDI݋?LFJJv}Phq$;R1F}߃#%>.3vw?( {O3rF9#g䌜3rFW/pCLIU~znzrF9#gn_CIC~у%AI_6GYIQ@nLIцΞII=gJmΏvt 圯 #z8^I-ѮJmΏ~uOϔڜ=+ 9?~EI#|z$( (m8mLFcidnVLv߆WORDSTAR.DOCk o !#"$%&(')+*,.-/0213456798_:;<=>?@ABCDGEFIHKJLNMOPQSRUTVWXY\[Z_]^a`cfegdjhbi r ONuSЬ?#E-{sS]n4wsxF k'964"z<SSL]G5b/?s]85Cj?y#j+FsIKg)_I ȯިa4u^QWIy˭]}>1ń/< ËwC;vј)i>tsp>7TO_)&|iGFg;v].1 S|\8/ń/Ngv;$v?_)B?&|FC݀ϮЯW&(@EϘ<{v_P{h7pJ1 xv_P>ޡ uM  ߗ}AĻ0|CYíTʮ8P@ntj>P/ γGb"tJ?VK3W/W *)S]ߋ{i, Gyׇ|~`R^IP1_+ J%Ck<7 ]ClWB=LЅ@J='<\tvuz$( uMsuvME4 :Ʊ0BI}$$[( J̫DkG9+ 8^I%AIxQ0NgggC;JLzhDkGEtq$uaV'~u{}%J 휈hpy\Htq$uaX1/W3L֡5MSc$(Q2O%_;Gr!%Jō$g ]3v}t\Qy0]Q]2L<; Aƻ~u{!6(SyvDkG+ 86}lQb)QPSl{<>9F5XJ%FIPHht[kGaJnq$(!nM];e8^P+!jMмZ?V"֔>Bmql= ;V$PL]ˣ.4 j91L;Ӏv[}%J&vJ*!PˡKJ1(0ĆJmG#mzVB+evyAٸ`k%DoR[Q+!jHsƵj%DoR[Q+!jHG(HV+!zڲZ Q;F gR%DoR[Q+Qh4CFk6au9]ء> jd5y%JF}OLFW(Q-n%|:K vScYq@RU(i>'Di$scϳ~uMEp{~1=v# Lvu3:>a X*\&~yI Fo4]Bwv傆!=o^uSwۚuz# 1u-{~S~?8mRA );m=w # 1um; ^e!A:GH iӆ9.s6;L>iL9oL>i!-q0gեRSw۽ð $W].g61uq{xt# 1u5ŧJC`_Ss5L>s |_Fqerc64:l #L\u˳'kjܘ}) gJWI*ӏ+$ pK`\01 pGz=9+JuW]*0PѳFfUS)ZqƄ/(4g]%, DŽ/*V֐cWy.gc~v绻7&w;bw=ިab|$ӆFWo԰b:چ/NSL݃euhaySHÓStp$9~1 TJҟϳ'\]nԼ).hΐxtϳL]S̎]pj>{Q+SsL]ώ'w}"ڽCpj>{Q%s{%Dd$VB&}dV%Di$s٫0록TJkk"%ɮO&Hۗ) w 1X/~u{%Dd$VB&}y^ d~{3ةJHU ћz%J K61]/^~}ó.γI)C B2taxD d=(`09NgMM߿/JZ44+!2)RΛJ6yvJMH dv:ώ*ta)l=b.ѣih^WB4ڑ%]bo 8e8h%DM5o*!P┕MN]uS bЅa D┕ymR%%Jj(%:&`RMhM(!)h|5MCj=)!HU F$ fЅwИ`)!jd)+!ڼD d=쎈!d^O will skip to the next message.^D+Mi~851uz/ {n`W3KUdW`p=zogͬ>b w_ٵ{n`W3KUK0`ob#/! ϓ'*Z2/. 9,ؽoYHM )4PЦ0PўtS Ljo7; cꂁvqaAw nV֐cWy.gc~v绻7&w;bw=ިab|$ӆFWo԰b:چ/NSL݃euhaySHÓStp$9~1 TJҟϳ'\]nԼ).hΐxtϳL]S̎]pj>{Q+SsL]ώ'w}"ڽCpj>{Q%sΞ9Hn m9HVvdN+{ YeA*z\O\+k}(g㳱2lΉ/l|vtŸAySvsx);37;(gG/v[{Pώ =(ovy}v=(ov&h;j8Nukg/܎}v87g w>an Ŀ> |6Ά=ْ/_{pg 鳛KWMf;z}v{B:*>o{cl%ڲ>P_x1nn=n/l0W# ]gB̩K'֔c0A}|WPƕ9)]=gx6^ޚԻ>2Ȁśp0Pʘ°P<9Xg㳧N=U_|u*ITgO>e_+Hdߗ.0]ejyKE2EG|gch(E!~[d_J|GEG]1:+ȣ d+Qlba^_^}6T"?b/( @///9wP#tz6V_JjGO?]1e d؇(lr6j\6Ru_̫ #UtO+P ׳FwDɲGx lKwWly%\@ke5./fKDgc+l|T9{|Ξ* g㳣L=pXӑWˣRJ?qp6a=n,t؇"HDXb˓[lJ`ytFXrҼPPΎNT6Poi؇3==( OnlCeCJε:t//C//=( 8wceC*P"u_̫bEuͼOڃpLXЇʆ>nż@iuW dzOڃF|2.Wͮu/U7bK|;ْtcE'n.]'ꛜFՇٝ *~<P_}v%wGӍu\d,rjPep(Qr8v6>%lwwcS@/ =_&3DXLwcvͲWS30.DOCZ  "!#$%'&)(*,+-/.01o32546789:;<=?>A@BCDEFGHIJKLMNQOPRSUVTXYWY4ώ]0gtMs\sf?B̩K'֔cM (>+sS:wI.qʯ` %<TaXO7O!B!YeϮ+ujW~߯B υ4ʍ~PȲy= yzz~ xgs.z @P|g{ Qs  S/p0Pz{BBf= 6(dBP|SXSDПCPB,{Ϭ8=/`P< Bd^POz :/^JgyB i'ܸWzH>ېyBAi 9XzPjjzxn /D| ÇzVtQ 7E_Y! ᅄ2IaXO'S8sO'x(O(dd>YOl2OaX(+󀌟Xp|(zB!?sxx,CGM[35eX![sB !gQ89Hni(ץRq)ʆnsF4L$n4ZL"9%)#sZZTb3-DXB85gIlDXLwc-yR Άby+&C#k݄{Zeuc@VGYdBnٽfJ+#Khu/&P,⢣(Ȱn 5JTuk97ozNo^n,'U}TנlDX͖=ɆXD% dƈZs/_̞^1ͥa^n*~QL~L5/1Xˠ)4g7ίΆŪ +@PA$uvp.X՗Au J$'àlݔFb˓[b"/1/=ɆX6t. %4 ٝ Z.po1 WS3330.DOC--User Patch Points for WordStar 3.3 and 3.0 KAYPRO WORDSTAR 3.3 WS 3.3 WS 3.0 ORIGINAL LABEL ADDR ADDR DESCRIPTION SETTINGS WSVER 0110 0110 WordStar version COPRIT 0112 0117 copyright notice SIGNON 014E 0153 WordStar sign-on message 0179 017F serial number IDTEX 018A 018F terminal id text PIDTEX 01AE 01B3 printer id text PROTTX 01D2 01D7 printer protocol text PDRVTX 01F6 01FD port driver text 021B 0220 various flags and holders for internal . use by WordStar . . HITE 0232 0248 screen height in lines (24) 18 WID 0233 0249 screen width in columns (80) 50 CLEAD1 0234 024A cursor positioning: lead-in string 02 1B 3D 00 00 00 00 00 00 CLEAD2 023D 0253 crsr pos: string between row/column 00 00 00 00 00 CTRAIL 0242 0258 crsr pos: ending string 00 00 00 00 00 CB4LFG 0247 025D crsr pos: 00 = row/col, FF = col/row 00 LINOFF 0248 025E crsr pos: row offset 20 COLOFF 0249 025F crsr pos: column offset 20 ASCUR 024A 1/g7W+쎗&^OkTWnż@^ U G ͼOg7W'tc-tnx" Q7bepvgC#_.KL^ Z.E8X~Qv6>kPQ~q访O\ϾOLbSȋucD!/vvZ=bvv'h:@ comment char (;) 3B ENDEXP 0388 47 RVELIM 0389 03D8 MailMerge delimiter for data values 2C RVQUOT 038A 03D9 MM delimiter for enclosed values 22 00 TXBACK 038C 2F 42 VARCH1 038E 03DB MM delimiter to inCIF 02B5 02D5 for TRS-80 only 00 HETHBS 02B6 02D6 for Lifeboat CP/M - Heath 89 00 APLFLG 02B7 02D7 for Apple only 00 MPMFLG 02B8 MP/M flag 00 NMOFUS 02D8 number of users on system 01 TCKFLG 02DA for MP/M only 00 RSTFLG 02DB FF = no disk resets by WordStar 00 DEFDSK 02B9 02DC drive for OVR files after logged drive 01 SCRLSZ 02BA 02DD columns for horizontal scroll 14 CNVTBL 02BB ?? 00 00 00 00 00 . . . MORPAT 02CB 02E0 space for user-added routines CD 8A 02 C3 AB (with mysterious 12 bytes of code) 24 CD A0 3E C3 87 02 00 00 00 00 00 00 00 00 . . . PBGMEM 034B 035C pointer to beg of memory (i.e. text) 60 84 ITHELP 034D 0360 initial help level 03 NITHLF 034E 0361 00 = display spec msg if ITHELP 1 or 2 FF ITITOG 034F 0362 FF = insert mode on, 00 = off FF ITDSDR 0350 0363 FF = no-file dir on, 00 = off FF INITPF 0351 0366 initial page format: line height 1/48s 08 03troduce variables 26 VARCH2 038F 03DC MM delimiter to terminate variables 26 VAROPC 0390 03DE char after name before option letters 2F 0391 03DF opt ltr for omit line if variable null 4F . . . COMPOP 0396 table of MM comparison operators 3C 3E 00 FD 3E . . . LOGICP 03B7 table of MM logical operators 2E 41 4E 44 2E . . . HZONE 03C9 039A hyphenation zone at end of line 04 03CA 039B pointer to non-consonant table D3 03 03CC 039D pointer to vowel table CE 03 VOWTAB 03CE 039F table of vowels 59 5B 5D 7B 7D NONCON 03D3 03A4 table of non-consonants 41 45 49 4F 55 00 00 00 00 00 BOFCHR 03DD 03AE beginning of file flag char 3A CONCHR 03DE 03AF line cont past screen edge flag char 2B EOFCHR 03DF 03AD end of file flag char 2E FDTCHR 03E0 03B5 merge-print command flag char 4D HARDCR 03E1 03B4 hard cr flag char 3C LFCHR 03E2 03B1 line ends in lf w/o cr flag char 4A OVPCHR 03E3 03B0 over52 0367 paper length (.pl) in lines (66) 42 0353 0368 paper length in 1/48s 10 02 0355 036A line height in 1/48s again 08 0356 036B margin at top (.mt) in lines 03 0357 036C margin at top in 1/48s 18 00 0359 036E line height again 08 035A 036F heading margin (.hm) in lines 02 035B 0370 heading margin in 1/48s 10 00 035D 0372 line height again 08 035E 0373 bottom margin (.mb) in lines 08 035F 0374 bottom margin in 1/48s 40 00 0361 0376 line height again 08 0362 0377 footing margin (.fm) in lines 02 0363 0378 footing margin in 1/48s 10 00 0365 037A line height again 08 0366 037B 00 for standard character width 00 0367 037C std char width in 1/120s 0C 0368 037D alt char width in 1/120s 0A 0369 037E page offset in characters 08 INITLM 036A 037F initial left margin less 1 00 INITRM 036B 0380 init right mar less 1, up to WID - 4 40 INITSR 036C 0381 initial sub/superscript roll in 1/48s 03 INITWF 036D 0385 word wrap (^OW), 00 = off, FF = on FF 036print line flag char 2D PAGCHR 03E4 03B2 end of page flag char 50 SOFTCR 03E5 03B3 soft cr flag char 20 SOFHYC 03E7 03B8 character used for soft hyphens AD PAGFIL 03E8 03B9 character used for page breaks 2D MARKS 03E9 03BA character used for start of blocks 42 03EA 03BB character used for end of blocks 4B 03EE 03BF characters (0-9) used for place markers 30 31 32 33 34 35 36 37 38 39 PODBLK 03F8 03CA disk file output, 00 = no, FF = yes 00 03F9 03CB use form feeds, 00 = no, FF = yes 00 03FA 03CC suppress page format, 00 = no, FF = yes 00 03FB 03CD pause between pages, 00 = no, FF = yes 00 NOUFF 03FC 03D1 FF = suppress form feed question above 00 ITPOPN 03FD 03D3 print page numbers, 00 = on, FF = off 00 ITMIJ 03FE 03D4 microjustification, FF = on, 00 = off FF ITBIP 03FF 03D5 bi-directional print, FF = on, 00 = off FF FNWSCM 0400 03E6 name of main WordStar program WS COM DSKTNA 040C 03F2 name of message file WSMSGS OVR FNOVLY 0418 03FE name of overlay file WSOVLY1 C 0541 0529 delete character left 0545 052D " " " ^_ 0549 0531 delete char under cursor ^G 054D 0535 delete line ^Y 0551 0545 delete word right ^T 0555 0549 toggle insert mode on/off ^V 0559 054D reformat to end paragraph ^B 055D 0555 insert line ^N 0561 0559 tab ^I 0565 055D carriage returnRN ^M 0569 0561 put nxt char in txt as ctrl char ^P 056D 0565 toggle display of marked block ^KH 0571 0569 mark/hide block begin ^KB 0575 056D mark/hide block end ^KK 0579 0571 set/hide marker 0 ^K0 057D 0575 " " 1 ^K1 0581 0579 " " 2 ^K2 0585 057D " " 3 ^K3 0589 0581 " " 4 ^K4 058D 0585 " " 5 ^K5 0591 0589 " " 6 ^K6 0595 058D " " 7 ^K7 0599 0591 " " 8 ^K8 059D 0595 " " 9 ^K9 05A1 0599 move block ^KV 05A5 059D copy block ^KC 05A9 05A1 delete block ^KY 05AD 05A5 toggle column mode on/off ^KN 05B1 05A9 ^KZ 05B5 05AD OVR FNMRGP 0424 040A name of merge-print overlay MAILMRGEOVR AUTOBS 0430 0422 table of auto-backspace characters 00 00 00 00 00 00 00 00 00 00 00 BSCHR 043B 042D char to use after autobs, usually ^H 08 NOFTAB 043C 0430 no-file command table 04 00 00 01 (each entry 4 bytes, first two are . cmd chars, next two are address of . routine) . VTAB 0489 0481 file editing command table 11 FF 12 00 (same format as NOFTAB) 0B FF 16 00 0F FF 1E 00 0A FF 22 00 0499 0491 set help level ^JH 0A 08 04 01 049D 0495 cursor left ^S . 04A1 0499 backspace ^H . 04A5 049D cursor right ^D . 04A9 04A1 cursor left ^A 04AD 04A5 cursor right word ^F 04B1 04A9 cursor down ^X 04B5 04AD cursor up ^E 04B9 04B1 cursor to left margin ^QS 04BD 04B5 cursor to end of line ^QD 04C1 04B9 cursor to bottom of screen ^QX 04C5 04BD cursor to top of screen ^QE 04C9 04C1 cursor to block begin ^QB 04CD 04C5 cursor to block end ^QK 04D1 04Cinterrupt command in progress ^U 05B9 05B1 save file and exit ^KX 05BD 05B5 save file and return to menu ^KD 05C1 05B9 save file and continue ^KS 05C5 05BD abandon file and return to menu ^KQ 05C9 05C1 read file into text ^KR 05CD 05C5 write block to another file ^KW 05D1 05C9 delete file ^KJ 05D5 05CD toggle directory on/off ^KF 05D9 05D1 print file ^KP 05DD 05D5 change logged disk ^KL 05E1 05D9 copy file ^KO 05E5 05DD rename file ^KE 05E9 05E1 set left margin ^OL 05ED 05E5 set right margin ^OR 05F1 05E9 set tab ^OI 05F5 05ED clear tab ^ON 05F9 05F1 set mar/tabs frm new ruler line ^OF 05FD 05F5 toggle word wrap on/off ^OW 0601 05F9 " justification on/off ^OJ 0605 05FD " variable tab on/off ^OV 0609 0601 " dot cmd interp on/off ^OD 060D 0605 " ruler display on/off ^OT 0611 0609 " page break display on/off ^OP 0615 060D " soft hyphen on/off ^OE 0619 0611 " hyphen help on/off ^OH 9 cursor to previous position ^QP 04D5 04CD crsr to source of search, move ^QV 04D9 04D1 cursor to marker 0 ^Q0 04DD 04D5 " " " 1 ^Q1 04E1 04D9 " " " 2 ^Q2 04E5 04DD " " " 3 ^Q3 04E9 04E1 " " " 4 ^Q4 04ED 04E5 " " " 5 ^Q5 04F1 04E9 " " " 6 ^Q6 04F5 04ED " " " 7 ^Q7 04F9 04F1 " " " 8 ^Q8 04FD 04F5 " " " 9 ^Q9 0501 04F9 cursor to begin file ^QR 0505 04FD cursor to end file ^QC 0509 0501 find ^QF 050D 0505 find & replace ^QA 0511 0509 set left margin ^QL 0515 0511 scroll back continuously ^QW 0519 0515 scroll forward continuously ^QZ 051D 0539 delete to begin line ^Q 0521 053D " " " " ^Q_ 0525 0541 delete to end line ^QY 0529 0551 repeat nest command ^QQ 052D 050D repeat last ^QF or ^QA ^L 0531 0519 scroll forward one line ^Z 0535 051D scroll back one line ^W 0539 0521 scroll back one screen ^R 053D 0525 scroll forward one screen ^ 061D 0615 paragraph tab ^OG 0621 0619 margin release ^OX 0625 061D center line ^OC 0629 0621 set line spacing ^OS 062D 0625 help for dot commands ^JD 0631 0629 " " status line ^JS 0635 062D " " flags ^JF 0639 0631 " " place markers ^JP 063D 0635 " " paragraph reform ^JB 0641 0639 " " tabs and margins ^JM 0645 063D command index ^JI 0649 0641 help for moving text ^JV . 064B 0645 " " ruler line ^JR . 0651 ^JA . XTAB 0655 0649 expansion space for edit cmd table 00 00 00 00 . . . FPTAB 067A 066E merge-print cmd table 10 00 28 43 (2 byte cmd char + 2 byte address) . . . 00 PNFTAB 068B 067F pointer to no-file cmd table 3C 04 PVTAB 068D 0681 pointer to edit cmd table 89 04 PFPTAB 068F 0683 pointer to merge-print table 7A 06 (following are spec chars used at prompts) CLCHR 0691 0686 cursor left char 13 CRCHR 0692 0687 cursor righr driver 00 (00 = primary list device) (01 = WordStar's port driver) (02 = user printer driver) (03 = oem driver) (04 = alternate console driver) HAVBSY 0718 0718 have printer busy rtn? FF = yes 00 (If CSWTCH = 00, next 3 active) LIBSY 0719 071A jmp to user busy test routine 00 B7 C9 LISEND 071C 071D routine send character to list device 5F 0E 05 CD 05 00 B7 C9 LISINP 0724 0725 jmp to user char input rtn 00 37 C9 (if using XON/XOFF or ETX/ACK) (If CSWTCH = 01, next 11 active) POBSY 0727 0728 port driver output status entry DB POSTAT 0728 0729 output status port address 05 00 E6 POMASK 072B 072C bit mask for transmit ready 01 EE POOM 072D 072E bits that change 01 37 C0 B7 C9 POSEND 0732 0733 port driver send char entry D3 POOP 0733 0734 output data port address 04 00 C9 POINP 0736 0737 port driver input status entry DB PISTAT 0737 0738 input status port address 05 00 E6 POINSK 073A 073B bit mask t char 04 LITCHR 0693 0688 prefix to take next char as literal 10 DIRCH 0694 0689 directory on/off 06 scroll dir up 1A scroll dir down 17 STPCHR 0697 068C must match interrupt char above 15 ERELCH 0698 068D error release char for interrupt 1B POSMTH 0699 0690 type of printer FF FF = teletype, no backspace 00 = teletype w/backspace 01 = daisywheel 03, 04 = special oem printers BLDSTR 069A 0691 number of strikes for boldface 03 DBLSTR 069B 0692 number of strikes for double-strike 02 (Next 8 labels active only if POSMTH = FF or 00) PSCRLF 069C 0696 string to do CR and LF 02 0D 0A 0D 0A 0A 00 00 00 00 00 PSCR 06A7 06A1 string to do CR only 02 0D 00 00 00 00 00 PSHALF 06AE 06A8 string to do CR and half-LF 00 0D 0A 00 00 00 00 PBACKS 06B5 06AF string to do backspace 00 08 00 00 00 00 PALT 06BB 06B5 string to set alt char width ^PA 00 1B 45 00 00 PSTD 06C0 06BA string to set std char width ^PN 00 1B 4Efor receive ready 02 EE POIM 073C 073D bits that change 02 37 C0 DB POIP 0740 0741 input data port address 04 00 B7 C9 (If CSWTCH = 02, next 3 active) PUBSY 0744 074C jmp to user printer busy test routine 00 B7 C9 PUSEND 0747 074F jmp to user char output routine 00 00 C9 PUINP 074A 0752 jmp to user char input routine 00 37 C9 (If CSWTCH = 04, next 7 active) ACBSY 074D 0758 jmp to user alt con busy test 00 B7 C9 ACSEND 0750 075B send char to alt con CD 6C 07 CD F0 20 C3 63 07 ACINP 0759 0764 input char from alt con CD 6C 07 CD 55 1D C4 6C 1D 57 ACFIN 0763 076E exit routine start 78 ACSTA1 076F 076F set/reset iobyte 32 03 00 7A B7 C0 37 C9 ACSTAR 076C 0777 entry routine start 57 3A 03 00 47 E6 FC F6 CONFIE 0774 077F alt con device assignment 01 (00 = TTY:, 01 = CRT:) . . . PROTCL 0778 0786 printer protocol type 00 (00 = none) (01 = ETX/ACK) (02 = XON/XOFF) EAKBSZ 07 00 00 ROLUP 06C5 06BF str to roll carr up part line ^PT 00 00 00 00 00 ROLDOW 06CA 06C4 str to roll carr down part line ^PV 00 00 00 00 00 USR1 06CF 06C9 string for user function 1 ^PQ 00 00 00 00 00 USR2 06D4 06CE " " " " 2 ^PW 00 00 00 00 00 USR3 06D9 06D3 " " " " 3 ^PE 00 00 00 00 00 USR4 06DE 06D8 " " " " 4 ^PR 00 00 00 00 00 RIBBON 06E3 06DD string to set alt ribbon color ^PY 00 00 00 00 00 RIBOFF 06E8 06E2 string to set std ribbon color ^PY 00 00 00 00 00 PSINIT 06ED 06E7 string to initialize printer 01 0D 54 31 32 00 00 00 00 00 00 00 00 00 00 00 00 PSFINI 06FE 06F8 string to uninitialize printer 00 1B 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 SOCHR 070F 070B character for strikeout 2D ULCHR 0710 070C character for underline 5F PRINIT 0711 070D jmp to user printer init routine 00 00 C9 PRFINI 0714 0710 jmp to user printer uninit routine 00 00 C9 CSWTCH 0717 0717 switch to select printe79 0787 ETX/ACK msg buffer size 7F (Most of the following are for daisywheels only) DVMILE 077A 0790 vertical motion index leadin string 00 1B 1E 00 00 DVMITR 077F ?? 00 1B 02 00 00 DVMMIN 0784 0795 ?? FF FF DVMRNG 0786 0797 ?? FF FF DHMILE 0788 0779 horizontal motion index leadin string 00 1B 1F 00 00 DHMIFG 078D 079E ?? 00 DHMIN 078E 079F ?? FF FF DHRNG 0790 07A1 ?? FF FF DFWD 0792 07A3 string to set forward print 00 1B 35 00 00 DBAK 0797 07A8 string to set backward print 00 1B 36 00 00 DSP 079C 07AD forward space 00 20 00 00 00 DBS 07A1 07B2 backward space 00 08 00 00 00 DLF 07A6 07B7 line feed vmi 00 0A 00 00 00 DRLF 07AB 07BC reverse line feed 00 1B 0A 00 00 DPHSPC 07B0 07C1 print phantom space 00 1B 59 00 DPHRUB 07B4 07C5 print phantom rubout 00 1B 5A 00 DNPROS 07B8 07D3 suppress proportional spacing 00 (00 = on, FF = off) DMJWB 07B9 07D5 use alt microjustification algorithm 00 (00 = no, FF = yes) PSTAB 07BA 07D8 p; ; PATCHES FOR WORDSTAR 3.3 ADDRESSES LOCATED BY TJ OLNEY ;SUCCESSFULLY IMPLEMENTS MEMORY MAPPED VIDIEO ;WSPAT33.ASM -- VERSION 1.000 -- For GEMINI 10X BY STAR MICRONIX ; Smooth scrolling that was in Mike Schwab's version has been eliminated ;by setting smooth and specl to FALSE I have no idea whether they can ;be succesfully implemented in the same way that I implemented the rest ; which was by matching code segments in WS 2.26 to code segments in WS 3.3 ; and going on faith that the code involved had only moved around and not ; changed significantly. ; ;==================================================================== ; | ; Wordstar patches combined from many other patches published, with | ; some enhancements and modifications. | ; Written by Mike Schwab, assistant librarian, Denver Osborne Group | ; (303) 986-3102, CompuServe 71555,222. | ; Please contact me (telephone is faster) if you find any problems | ;roportional spacing table . (righthand digit of each byte is . the one involved in the totally . unsupported proportional spacing command ^P^P) 083A 083A END OF USER PATCHING AREA  FF FF DHMILE 0788 0779 horizontal motion index leadin string 00 1B 1F 00 00 DHMIFG 078D 079E ?? 00 DHMIN 078E 079F ?? FF FF DHRNG 0790 07A1 ?? FF FF DFWD 0792 07A3 string to set forward print 00 1B 35 00 00 DBAK 0797 07A8 string to set backward print 00 1B 36 00 00 DSP 079C 07AD forward space 00 20 00 00 00 DBS 07A1 07B2 backward space 00 08 00 00 00 DLF 07A6 07B7 line feed vmi 00 0A 00 00 00 DRLF 07AB 07BC reverse line feed 00 1B 0A 00 00 DPHSPC 07B0 07C1 print phantom space 00 1B 59 00 DPHRUB 07B4 07C5 print phantom rubout 00 1B 5A 00 DNPROS 07B8 07D3 suppress proportional spacing 00 (00 = on, FF = off) DMJWB 07B9 07D5 use alt microjustification algorithm 00 (00 = no, FF = yes) PSTAB 07BA 07D8 p or have any suggestions. | ; | ; Refer to the WSPATCH2.DOC documentation file for instructions on | ; modifying and installing this patch routine. | ;___________________________________________________________________| ; ; ; DEFINITIONS ; TRUE EQU 1 FALSE EQU NOT TRUE CURSOR EQU 0EF5Ah ;location of cursor position in BMRAM SCREEN EQU 0F000h ;this was left out of Thom Hogan's listing ; ; ; ADJUSTABLE OPTIONS (See documentation): ; FAST EQU TRUE ;if TRUE, memory mapped video being used. HILITE EQU TRUE ;if TRUE, underlined video selected for hilite. ; SMOOTH EQU FALSE ;SMOOTH not allowed if not FAST. SPECL EQU FALSE ;special adjustable scroll mode. ;haven't tried this but am leaving it for others to do WIDTH EQU 104 ;width of screen to use (i.e: 80, 104, or 128). DWIDTH EQU 104 ;width of actual display (52, 80, or 104). COLSCR EQU 104 ;column to begin horizontal scroll after (if enabled). ; ; (Note: setting SMOOTH=FALSE disables smooth scrolling without ; disabling the memory mapped video.) ; ; ; ASCII control code equates - to be used in defining patches. ; NUL EQU 00H ;Null SOH EQU 01H ;Start of Heading STX EQU 02H ;Start of Text ETX EQU 03H ;End of Text EOT EQU 04H ;End of Transmission ENQ EQU 05H ;Enquiry ACK EQU 06H ;Acknowledge BEL EQU 07H ;Bell BS EQU 08H ;Backspace HT EQU 09H ;Horizontal Tab LF EQU 0AH ;Line Feed VT EQU 0BH ;Vertical Tab FF EQU 0CH ;Form Feed CR EQU 0DH ;Carriage Return SO EQU 0EH ;Shift Out SI EQU 0FH ;Shift In DLE EQU 10H ;Date Link Escape DC1 EQU 11H ;Device Control 1 (X-ON) DC2 EQU 12H ;Device Control 2 DC3 EQU 13H ;Device Control 3 (X-OFF) DC4 EQU 14H ;Device Control 4 NAK EQU 15H ;Negative Acknowledge SYN EQU 16H ;Synchronous Idle ETB EQU 17H ;End of Transmission Block CAN EQU 18H ;Cancel EM EQU 19H ;End of Medium SB EQU 1AH ;Substitute ESC EQU 1BH ;Escape FS EQU 1CH ;File Separator GS EQU 1DH ;Group Separator RS EQU 1EH ;Record Separator US EQU 1FH ;ole output ENDIF ; ORG 2B1H DEL3 DB 35 ;delay before help menus appear (was 25, now longer). DEL4 DB 0 ;delay after signon screen (made shorter). ; ; ;SEE FOGHORN JULY 1984 P.9 & NOV. 1983 ORG 2CBH ;THIS IS PART OF A PATCH TO SPEED UP PRINTER SPOOLING MORPAT CALL 0E12DH ANA A RNZ CMC RET ;CALLED FROM HAVBSY AT 071B ; ;___________________________________________________________________ ; ; SPECIAL ROUTINES FOR OSBORNE 1 ; Not part of Micro Pro patch items ; ; Note that these routines use addresses within BIOS. Since BIOS ; may be in different memory locations in different systems (like ; single and double density), and since this section is reloaded ; whenever another program is run from Wordstar (R command), each ; routine recalculates the current BIOS location on each call, using ; the jump to the BIOS warm start routine found in location 0 ; (the address is found at address 1). ; ORG 02D9h ;(I found that 2D7 and 2D8 are used in Wordstar) ; ; InitializaUnit Separator ;___________________________________________________________________ ; ; PATCHES: ; ; ; Change Logo for terminal and printer: ; (May be changed if anyone cares) ; ; IF FAST ; ORG 190H ; DB 'Memory Mapped Osborne I ';Limit LOGO to 33 characters ; ENDIF ; ;IF SMOOTH ;ORG 190H ;DB 'Smooth Scrolling Osborne I ';Limit LOGO to 33 characters ;ENDIF ; ; ORG 1B4H ; DB 'Gemini 10X Printer ';Limit LOGO to 33 characters ; ENDIF ; ; TERMINAL PATCH AREA ; ORG 232h ;origin of WordStar terminal patch area HITE DB 24 ;24 lines on screen (do not change) WID DB WIDTH ;change with WIDTH equate above. ; ORG 24BH IF FAST UCRPOS JMP WCUR ;use direct cursor addressing routine. ENDIF IF NOT FAST UCRPOS DB 0,0,0C9h ;Not used if terminal emulated ENDIF ; ORG 287H INISUB JMP ITERM ;initialization routine - set arrow keys. UNISUB JMP XTERM ;termination routine - reset arrow keys. USELST DB 1 ;Enable character in last position to show ; DB tion routine -- clear screen, set arrow keys ; for Wordstar, and turn off auto horizontal scroll. ; ITERM MVI C,26 ;clear screen code in C CALL CONOUT ;send it ; LXI B,0504H ;^E^D ;set arrow keys LXI D,1808H ;^X^H ; to Wordstar CHANGED ^S TO ^H XRA A ;turn off horizontal scroll ; AUTOS LHLD 1 ;fetch BIOS address IF SMOOTH MVI L,68H ;offset for auto scroll flag in BIOS MOV M,A ;set auto horizontal scroll flag ENDIF ; MVI L,7FH ;offset of pointer to arrow keys MOV A,M ;fetch pointer to arrow keys INX H ; and store in HL. MOV H,M MOV L,A ; MOV M,B INX H ; Set arrow keys MOV M,C INX H MOV M,D INX H MOV M,E ; RET ; ; Termination routine - reset arrow keys to CP/M, and turn ; on auto horizontal scroll. ; XTERM LXI B,0B0CH ;^K^L ;set arrow keys LXI D,0A08H ;^J^H ; to CP/M MVI A,0FFH ;turn on horizontal scroll JMP AUTOS ; ; Output from console routine ; OUTCON MOV C,A ;get it in C where CP/M can use it CONOUT LHLD 10,0,0 ;Reserved bytes for expansion NO ROOM IN 3.3 DELCUS DB 5 ;Delay after cursor set DELMIS DB 3 ;Delay after other functions ; ; The following section contains the primary code which implements ; smooth scrolling on the Osborne 1. Be careful when modifying this ; section. ; IF FAST MEMAPV DB 1 ;Use memory-mapped video MEMADR DW SCREEN ;Screen location ENDIF IF NOT FAST MEMAPV DB 0 ;Use terminal driver MEMADR DB 0,0 ;No memory address needed ENDIF IF HILITE HIBIV DB 80h ;Use underline for highlight ENDIF IF NOT HILITE HIBIV DB 00h ;No highlighting ENDIF HIBCUR DB 80h ;cursor set on self CRBLIV DB 0FFh ;blink cursor on self ; ORG 29AH IF FAST UCNSTA JMP CONST ;get console status from BIOS UCONI DB 0,0,0C9H ;if you put JMP INCON here, arrow keys are bypassed UCONO JMP OUTCON ;send console output ENDIF IF NOT FAST UCNSTA DB 0,0,0C9h ;no special console status from BIOS UCONI DB 0,0,0C9h ;no special console input UCONO DB 0,0,0C9h ;no special cons ;fetch BIOS address MVI L,0CH ;offset for console output routine PCHL ;jump to it ; CONST LHLD 1 ;fetch BIOS address MVI L,06H ;offset for console status routine PCHL ;jump to it ; ; Position cursor by brute force in BMRAM ; WCUR LXI H,SCREEN ;Put screen start address in HL DAD D ;Add position of cursor in DE to HL SHLD CURSOR ;Save new cursor position RET ; ; ; Special automatic scrolling routines ; SCROL PUSH H ;SAVE WORDSTAR REGISTERS PUSH D PUSH B ; IF SPECL ;special scroll mode - adjust scroll column with ^JHn. LDA 353DH ;Fetch current help level (0,1,2 or 3). RLC ; * 8 RLC RLC MOV C,A ; MVI A,COLSCR-1 ;Subtract from default scroll column SUB C ; MOV C,A LDA 3545H ;Fetch Wordstar's current column SUB C ;Check if past adjusted scroll column ENDIF ; IF NOT SPECL LDA 3545H ;Fetch Wordstar's current column SUI COLSCR-1 ;CHECK IF PAST SCROLL COLUMN ENDIF ; JNC SCROL1 ;YES - CONTINUE XRA A ;NO - SET SCREEN TO COLeight repeated here DB 03 ;Top margin (in lines) (.MTn) DW 24 ;Top margin (in 1/48's) DB 08 ;Line height repeated again DB 02 ;Heading margin (in lines) (.HMn) DW 16 ;Heading margin (in 1/48's) DB 08 ;Line height repeated again DB 04 ;Bottom margin (in lines) (.MBn) DW 32 ;Bottom margin (in 1/48's) DB 08 ;Line height repeated again DB 02 ;Footing margin (in lines) (.FMn) DW 16 ;Footing margin (in 1/48's) DB 08 ;Line height repeated again DB 0 ;Must be 0 for standard char width DB 12 ;Standard char width (1/120's)(12=10char/inch) DB 10 ;Alternate char width (1/120's)(10=12/inch) DB 08 ;Page offset in characters (.POn) INITLM DB 1-1 ;Left margin minus 1 INITRM DB 66-1 ;Right margin minus 1 INITSR DB 3 ;Superscript roll (in 1/48's) ORG 36DH INITWF DB ON ;Word wrap flag (^OW) DB OFF ;Justification flag (^OJ) DB ON ;Variable tabs flag (^OV) DB OFF ;Soft hyphen entry flag (^OE) DB OFF ;Hyphen help flag (^OH) DB ON ;Print controUMN 1 SCROL1 CPI WIDTH-DWIDTH ;CHECK IF CLEAR AT RIGHT SIDE JC SCROL2 ;NO - CONTINUE MVI A,WIDTH-DWIDTH ;YES - STOP AT RIGHT SIDE SCROL2 ADI ' ' ;ADD CURSOR OFFSET ; PUSH PSW ;SAVE X SCREEN POSITION MVI C,ESC ;SEND SCREEN POSITIONING CALL CONOUT ; ESCAPE SEQUENCE MVI C,'S' CALL CONOUT MVI C,' ' CALL CONOUT POP PSW ;RETRIEVE X SCREEN POSITION, CALL OUTCON ; AND OUTPUT ; POP B ;RESTORE WORDSTAR REGISTERS POP D POP H ; JMP 1C00H ;JUMP BACK TO WORDSTAR ; ; >>>>>>>>> DO NOT LET THESE PATCH ROUTINES EXTEND BEYOND <<<<<<<<<< ; >>>>>>>>> 034AH, AS 034BH AND ABOVE ARE USED BY WORDSTAR <<<<<<<<<< ; IF SMOOTH ORG 1BF9h ;input prompt/command response in Wordstar CALL SCROL ;don't reset to column 1 ; ; (messes up command prompts). ORG 2EBEh ;input data character JMP SCROL ; go directly to auto horizontal scroll routine ENDIF ; ; Patches to correct video address calculations when ; the screen width is less than 128 columns. These l display flag (^OD) DB ON ;Ruler display flag (^OT) DB ON ;Dynamic page break flag DB ON ;Page break display flag (^OP) DB 1 ;Line spacing: 1-5 (.LS) ORG 378H NONDOC DB ON ;Enter WS in Non-document mode (???) DECCHR DB '.' ;Decimal tab character ORG 37AH DOTCHR DB '.' ;DOT command character DOTSON DB ON ;Enable dynamic DOT command interpretation ORG 3C9H HZONE DB 9 ;Hyphenation (3=shorter words, 5=longer words) ORG 3F8H ;change defaults in print command: PODBLK DB OFF ;Disk file output from Print flag DB OFF ;Use forms feeds during print DB OFF ;Suppress page format during print DB OFF ;Pause between pages during print ORG 3FDH ITPOPN DB ON ;Omit page numbers during print DB ON ;Micro justify flag DB ON ;Bidirectional print flag ORG 389H RVELIM DB ',' ;Delimiter character in data file ORG 38EH VARCH1 DB '&' ;Variable start VARCH2 DB '&' ;Variable end ORG 430H AUTOBS DB 0 ;Automatic backspace (???) ;__________________________________________; patches are to places where Wordstar uses the WID ; variable in address calculations. They force the ; use of the real 128 column video memory width ; instead, so that the correct address is calculated. ; IF FAST ; ORG 2074H ;signon screen display MVI A,128 NOP ; ORG 2098H ;scroll up code MVI L,128 NOP ; ORG 2355H ;general-purpose address calculation routine MVI A,128 NOP ; ORG 3DBFH ;affects scroll down code LXI H,8018H ;80 IS WIDTH,18 IS HEIGHT OF SCREEN ; ENDIF ;___________________________________________________________________ ; ; PROGRAM OPTION PATCH SECTION ; ; (Flags are 0FFH for on, 000H for off). ; ON EQU 0FFH OFF EQU 000H ; ORG 34DH ITHELP DB 0 ;initial help level: 0,1,2, or 3 (^JHn) NITHLF DB ON ;???? ITITOG DB ON ;Insert mode flag (^V) ITDSDR DB ON ;Directory display flag (^KF) ORG 351H INITPF DB 08 ;Line height (in 1/48's) DB 66 ;Paper length (in lines) (.PLn) DW 528 ;Paper length (in 1/48's) DB 08 ;Line h_________________________ ; ; PRINTER PATCH SECTION ; ; This section will be different for each printer. Most ; parameters will consist of a character count, followed ; by a string of ASCII characters. ; ; CAUTION - Make sure to leave the same number of bytes defined ; as were previously defined for each parameter, ; by adding or deleting trailing zeroes as needed. ; ORG 69AH BLDSTR DB 2 ;Number of strikes for boldface DBLSTR DB 2 ;Number of strikes for doublestrike PSCRLF DB 2,CR,LF ;Advance to next line sequence DB 0,0,0,0,0,0,0,0 PSCR DB 1,CR,0,0,0,0,0 ;Return carriage for overprint PSHALF DB 3,ESC,'J',12,0,0,0 ;Half line feed sequence PBACKS DB 1,BS,0,0,0,0 ;Backspace character sequence PALT DB 2,ESC,'4',0,0 ;Alternate pitch (^PA) - ITALICS PSTD DB 2,ESC,'5',0,0 ;Standard pitch (^PN) - STANDARD ROLUP DB 3,ESC,'S',0,0 ;Superscript character sequence ROLDOW DB 3,ESC,'S',1,0 ;Supscript character sequence USR1 DB 2,ESC,'T',0,0 ;User sequence 1 (^PQ) - SUB/SUBERSCRIPT print OFF USR2 DB 1,SO,0,0,0 ;User sequence 2 (^PW) - DOUBLE WIDTH FOR 1 LINE ONLY USR3 DB 3,ESC,'W',1,0 ;User sequence 3 (^PE) - Double width on USR4 DB 3,ESC,'W',0,0 ;User sequence 4 (^PR) - Double width off RIBBON DB 3,ESC,'-',1,0 ;Alternate ribbon (^PY) - UNDERLINE on RIBOFF DB 3,ESC,'-',0,0 ;Standard ribbon (^PY) - UNDERLINE off PSINIT DB 2,DC1,CR,0,0,0,0 ;Printer initialization sequence DB 0,0,0,0,0 DB 0,0,0,0,0,0 DB 0 PSFINI DB 0,0,0,0,0 ;Printer ending sequence DB 0,0,0,0,0 DB 0,0,0,0,0,0 DB 0 ORG 70FH SOCHR DB '-' ;Character used for strikeout ULCHR DB '_' ;Character used for underlining ; ;this section installs a faster printer spooler FogHorn July 1984 p.9 Wayne Leman ORG 718H HAVBSY DB ON ORG 719H JMP 02CBH ; END voWSAVE12.DOCU  !"#$%&'()*+,o-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST=W|yZ>Ե,}5PdgZ j3=]?_'O!ڮڮ^^m=4Q& XD!W9@j8I@X8jM4G"tQ/+2&b%z)UJ(N3>/k cD]h܁W xyKeQS(v¨ w-epH!C*8n30jJȾ"܎bۮ5QD4R^rSjPk"nۏ?޾Bm2`g4RصFd HF*(vcF*d_X@78n3~{g(w) ԠP"&p@5Qᱠ + v iQ93bx|b5)+k\1j3F1k[cv b?KbvsC}źƇE"çAj00o`4Fh@X3k_P/+2;p0 w q5)+$=˫͌#u}kR0zdaTЈA 5zӠaZ.'4R!pX/63") W`4Ȋ3h8aTh200jM 342h8aT8Wx,]H0M1KWSAVE 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:|}5Ե7[gLHe`aT p& 7־JnZѭ3bqX/6E֚,܂38 E^U,|k=UJaFDLaAZW3{ SbwX/6`?Q;Hᄰ&Ѐ(2tAvQ/+23{ĖP*`Q/+2&y3vdg>3V*& C#Ě ΄#H xQq֚KD4R>|G/]e*qF*Oobûk{+z^^m0*g$=J&X)7*C`ŭ`~:oϞ'_n $P VM]u :,E~hBq2"Tp>_C yZ'8jS,YF4RM]a`ԔP4,7LX@K1 UиеGƖvt3^3by?cA/5VP-EJ ΄K33ƖvëkNЀ*hM#cK;: TԙR ʁR x)1Է5;I*I NO!Kgtion i the manual onl sugges som possibl uses s don' fee constrained The onl ti comman entere on the keyboar t sequenc i th W tex fil tha wil b eventuall sen t th printe t caus prin operatio - no just printe character Incidentally i yo nee mor spac fo give printe contro sequence "steal spac fro th followin use are (but you'll loos furthe us o tha comman an use area (e.g a long string in USR [^PE] ca exten int USR4). muc faste versio o WordSta ca b mad o system whic suppor inser an delet lin (NO th sam a eras line delet erase lin an the scroll u th followin line o th screen) Also lowerin th dela value (o eliminatin the entirel whe possible wil als spee u scree updat tim an improv keyboar response Yo ca eve eliminat th W log an "legalese o th start-up( bu keep the SN # and version ID information - next page). So, xperiment with WSBIBLE.DOC ..WSBIBLE.DOC RULER #1 (Put cursor on line and hit ^OF to create new ruler) ---------------------------------------------------------------------------- The "Bible" on WordStar(r) Patching (ver 2.26, 3.0 & 3.3) A. F. REMICH Thi fil i listin o al th know W (v3.0 label an patc addresse tha hav bee abl t verify I yo kno o an no liste here pleas contac m s tha thi lis ca b update fo th benefi o all (Speakin hi WSCUSTOM.COM whic i include an update i thi WSBIBLE.DOC) Milton HICKS (Updated by Guy Gamble 222 Pacific Avenue address unknown) Long Beach, CA 90802 Evenings: (213) 924-6429 [...transformed into WSCUSTOM.DOC]: Cleane up squeezed W v3. item adde an collate wit othe WSPATCH fro Tamp Ba U.G. an fro th end o WS.IN (fo 3.3 and INSTALL.COM (v 3.0) by: Th. R. Hofmann Other contthe fixes and delays you want. novic shoul no fee thi i al beyon him Mak ne dis wit WS.CO v3.3 WS.IN an WINSTALL.CO (o INSTALL.CO fo WS.CO v2.26) Loa WINSTALL cal u W an an tel i t sav th modifie versio a WSNEW Afte yo hav mad al change possibl fro th mai installatio men an sub-menu, an befor exitin fro th mai menu ente " (instea o choice (A/B/C/D/E/F/X to ente th "Twiligh Zone o Wordsta patching. (In WS.CO v2.2, answe N t th las questio: "Ar all modification completed?") Eithe th label o he addresse ca b entered to get to the spot you want (Note i W.COM v3. th labe mus b PRECEDE b ":"(n spac - :HITE) and i W.COM v2.6 th labe mus b FOLLOWE b ":"(n spac - HITE: Al number ar hex bu th "h i 6F i NO entered. No tes, an TES som more Later i yo wan t renam WSNEW.COM yo mus us WINSTALL.CO (o INSTALL.COM). ributors: University of Toyama Bob Bloom Gofuku, Toyama, JAPAN 930 bbloom@BRL (TECOM) [...now called WSBIBLE.DOC, more in desperation than boastfulness]: New WS.COM v3.0 and v3.3 items were added and some old items corrected, the W.COM v2.2 item and WSMSGS.OVR menu patching info were also added. I crossreference everythin with 1 note fro WSPATCH b G Dah an Mik Schwab 2 numerou article fro th bes CP/M user group magazine FOGHORN, 3) a fantastic artlcle (and WS3330.DOC) by Ted Silveira in Jul/Aug 85 issue of PROFILES, and 4) great article on patching WS.COM b Richar Drakefor i Issu #1 o USER' GUID (yo d subscrib t thi great pub don't you?). I also added tips collected in my notebook over the past year. WordStar' patc location fo printe contro sequence ar labele ROLUP ROLDOW USER1 USER2 USER3 USER4 RIBBON RIBOF an ar invoked by ^PT ^PV ^PQ ^PW ^PE ^PR ^P an ^PY respectively The name an their descrip You will also be introduced to very useful technique of "auto-patching" that should make whole process easier, faster and comparitively effortless to repeat when the only working copy of your customized WS.COM dies on you. Look for a copy of WSAUTPAT.ASM to make to whole matter clearer and easier. ON SPECIA CAUTIO abou usin som o th label shown Label show wit numeri suffi (suc a INITPF+4 INITPF+C PODBLK+3 ar ONL useabl fo "hand patchin WS.CO wit WINSTALL.CO (o INSTALL.COM) The CANNO use i ASM.CO an th "autopatching techniqu presente a th en an als i WSAUTPAT.ASM Label ar no necessar anyway jus convenience Simpl omi the an charg on Thi i wher th fu begins. But first,here is my favorite fix ..... Yo sa yo wan t ge ri o WordStar's lengthy log an licens agreemen that litters WS.COM v3.30 sign-on (an stil be able see th ID infrmation during start-up? Because patch points for these fight ... SIGNON 153 153 14E WS INFO 00 MicroPro ... 174 174 16F SERIAL NUMBER 00 Serial # ... IDTEX 18F 18F 18A TERMINAL ID TEXT 00 Kaypro ... PIDTEX *1B3 1B3 1AE PRINTER ID TEXT 00 Standard ... PROTTX 1D7 1D7 1D2 PRINTER PROTOCOL TEXT 00 No commun ... PDRVTX 1FB 1FB 1FC PORT DRIVER TEXT 00 CP/M List ... 220 220 21B FLAGS AND HOLDERS FOR USE BY WORDSTAR 00/00 HITE 248 248 232 SCREEN HEIGHT (24 lines) 18 WID 249 249 233 SCREEN WIDTH (80 columns) 50 CLEAD1 24A 24A 234 CURSOR POS - LEAD-IN STR #02/1B 3D 00 00 00 00 00 00 CLEAD2 253 253 23D " " - STR BETWEEN COL/LINE ## 00 00 00 00 CTRAIL 258 258 242 " " - TRAILING STR ## 00 00 00 00 CB4LFG 25D 25D 247 " " FLAG (00=LN/COL; FF=COL/LN) 00 LINOFF 25E 25E 248 " " - LINE OFFSET 20 COLOFF 25F 25F 249 " " - COLUMN OFFSET xes cannot be reached with WINSTALL.COM, you will need to use use DDT.COM or DU.COM to: 1. Change the data bit at 3CF4 to 00H (to remove the logo). 2. Change the data bit at 3F1D to 00H (to remove the legalese). 3. Exit DDT.COM and enter: SAV 6 WSNEW.COM. .........have fun with WordStar(r) !!! Tony Remich 711 Shepard Court Gurnee IL 60031 [ ] ....... standard WS char < My comments > xx or 00 .... number in hex (00/00 is a big number or open space) * ........... conflict in label and address - use the address (probably due to label name changes by WS) #xx/ or ## .. filled or unfilled) leading data byte (DB) in a string which tells how many bytes of data follow ..WSBIBLE.DOC RULER #2 (Put cursor on line and hit ^OF to create new ruler) ..------!---!---!----!--------------- 20 ASCUR 260 260 24A " " DATA (00=BINARY, 02=DIGIT) 00 261 261 n/a 00 00 00 UCRPOS 264 264 24B " " - JMP TO USER CURSOR RTN 00 00 C9 267 267 24E " " - ADDRESS OF BYTE OUTPUT 00 00 267 269 n/a 00/00 ERAEOL 26D 26D 250 ERASE TO END OF LINE ^QY#01/18 00 00 00 00 00 LINDEL 274 274 257 DELETE LINE ^Y ## 00 00 00 00 LININS 27B 27B 25E INSERT LINE ^N ## 00 00 00 00 IVON 284 284 267 TURN-------------------!---!--------------- WS.COM PATCH POINTS accessible by WINSTALL.COM (or INSTALL.COM) [must be between 100h and 83Ah] (presente i v3. numeri orde wit '8 Kaypr standar value shown) LOCATION version WS LABEL 2.26 3.0 3.3 OPERATION CTRL SETTINGS ----- ---- --- --- ------------- ---- -------- 100 100 100 CHARACTER INPUT ROUTINE C3 FC 2C C3 F0 2C OUTCHR 106 106 106 CHARACTER OUTPUT ROUTINE C3 CD 20 C3 09 2D PATVER 10C 10C 10C 00 00 (varies) MSGVER 10E 10E 10E 00 00 " WSVER 110 110 110 00 00 " COPRIT 117 117 112 COPYRIGHT NOTICE 00 Copyri ON HIGHLIGHTING (INVSERSE VIDEO,#06/1B 42 30 1B HALF INTENSITY, AND/OR UNDERLINING) 42 31 IVOFF 28B 28B 26E TURN OFF HIGHLIGHTING #05/1B 43 30 1B TRMINI 292 292 275 TERMINAL INITIALIZATION STRING #01/1A 00 00 00 00 00 00 00 TRMUNI 29B 29B 27E TERMINAL UNINITIALIZATION STRING ## 00 00 00 00 INISUB 2A4 2A4 287 NOP or JMP TO USER TERM INIT SUB 00 00 C9 UNISUB 2A7 2A7 28A NOP or JMP TO USER TERM UNINIT SUB 00 00 C9 USELST 2AA 2AA 28D FF = CAN USE LAST LINE ON CRT FLAG  00 HETHBS n/a 2D6 2B6 For LIFEBOAT CP/M FOR HEATH-89 00 APLFLG n/a 2D7 2B7 For APPLE ONLY 00 MPMFLG *2D5 n/a 2B8 MP/M FLAG 00 NMOFUS *2D6 2D8 n/a NUMBER OF USERS ON SYSTEM 01 TCKFLG n/a 2DA n/a FOR MP/M ONLY 00 RSTFLG n/a 2DB n/a 00 = NO DISK RESETS BY WS 00 DEFDSK *2D7 2DC 2B9 FIND.OVR FILES ON DRV (AFT DEFALT DRV) 01 SCRLSZ n/a 2DD 2BA HORIZONTAL SCROLL (20 column) 14 CNVTBL n/a n/a 2BB 00 2D8 2DE 2BC 00/00 MORPAT 2E0 2E0 2CB USER MORE PATCH AREA (128 BYTES AVAIL) 00/00 (varies) INITIAL Edit Set-up Default ----------------------  00 DELCUS 2AE 2AE 28E DEL IN CURSOR ADDRESSING 00 to 0F msec 0A DELMIS 2AF 2AF 28F DEL IN OTHER MISC FUNCT, 00 to 0F msec 05 MEMAPV 2B0 2B0 290 FF = MEMORY-MAPPED DISPLAY TERMINAL 00 MEMADR 2B1 2B1 291 ADDRESS OF CURSOR HOME POS ON MM VIDEO 00 00 HIBIV 2B3 2B3 293 FF = HI LITE/INV VIDEO BY HI ORDER BIT 00 HIBCUR 2B4 2B4 294 FF = DISPLAY CURSOR BY HI ORDER BIT 00 CRBLIV 2B5 2B5 295 FF = BLINK CURSOR ON MM VIDEO 00 ZAFCIN 2B6 2B6 296 FIX FOR BACKSPACE ON DELETE 00 00 RUBFXF 2B8 2B8 298 FF = USE RFIXER 00 RFIXER 2B9 2B9 299 FIX FOR BACKSPACE ON DELETE 00 UCNSTA 2BA 2BA 29A NOP OR JMP TO USER CONSOLE STAT RTN 00 0 --------- PBGMEM 35C 35C 34B POINTER TO BEGINNING OF MEMORY (TEXT) 6D 84 ITHELP 360 360 34D HELP LEVEL ^JH 03 NITHLF 361 361 34E MAX HLP MSG IF ITHELP 1 OR 2 FF (FF = on) ITITOG 362 362 34F INSERT MODE ^V FF ITDSDR 363 363 350 FILE DIRECTORY DISPLAY ^KF FF 364 364 n/a 00 00 INITIAL Page Format Default ------------------------ ---------- INITPF 366 366 351 LINE HEIGHT, 1/48'S .LH 08 +1 367 367 352 PAPER LENGTH (66 lines) .PL 42 +2 368 368 353 PAPER LENGTH IN 1/48'S (.LH *.PL) 10 +3 369 369 354 second byte - PAPER LENGTH 02 +4 36A 36A 355 LINE HEIGHT AGAIN .LH 08 +5 36B 36B 356 MARGIN AT TOP (lines) .MT 03 +6 36C 36C 357 MARGIN AT TOP IN 1/48'S (.LH *.MT) 18 +7 369 369 354 second byte - MARGIN AT TOP 00 +8 36E 0 C9 UCONI 2BD 2BD 29A " " " " " INPUT " 00 00 C9 UCONO 2C0 2C0 2A0 " " " " " OUTPUT " 00 00 C9 SWIN 2C3 2C3 2A3 JMP OR RTN BEFORE CHAR SENT TO CONS 00 00 C9 2C6 2C6 2A6 00 00 00 SWOUT 2C9 2C9 2A9 " " " AFTER " " " " 00 00 C9 2CC 2CC 2AC 00 00 00 DEL1 2CF 2CF 2AF SHORT DEL - CURSOR BLINK (ON) 03 DEL2 2D0 2D0 2B0 MED-SHORT DEL- CURSOR BLINK (OFF) 09 DEL3 2D1 2D1 2B1 MED-LONG DEL - TIME TIL SUB-MENUS SHOW 19 DEL4 2D2 2D2 2B2 LONG DEL - MESSAGES AND SIGN-ONS 40 DEL5 n/a 2D3 2B3 DEL- SCREEN REDISPLAY/REFRESH 09 TRSCRS 2D3 2D4 2B4 For TRS-80 ONLY 00 TRSCIF 2D4 2D5 2B5 For TRS-80 ONLY 36E 359 LINE HEIGHT AGAIN .LH 08 +9 36F 36F 35A HEADING MARGIN (lines) .HM 02 +A 370 370 35B HEADING MARGIN IN 1/48'S(.LH *.HM) 10 +B 369 369 35C second byte - HEADING MARGIN 00 +C 372 372 35D LINE HEIGHT AGAIN .LH 08 +D 373 373 35E BOTTOM MARGIN (lines) .BM 08 +E 374 374 35F BOTTOM MARGIN IN 1/48'S (.LH *.BM) 40 +F 375 375 360 second byte - BOTTOM MARGIN 00 +10 376 376 361 LINE HEIGHT AGAIN .LH 08 +11 377 377 362 FOOTING MARGIN (lines) .FM 02 +12 378 378 363 FOOTING MARGIN IN 1/48'S(.LH *.FM) 10 +13 379 379 364 second byte - FOOTING MARGIN 00 +14 37A 37A 365 LINE HEIGHT AGAIN .LH 08 +15 37B 37B 366 00 = STANDARD CHAR WIDTH 00 +16 37C 37C 367 STD CHAR WIDTH IN 1/120'S ^N 0C +17 37D 37D 368 ALT CHAR WIDTH IN 1/120'S ^A 0A +18 37E 37E 369 PAGE OFFSET IN CHARS .PO 08 INITLM 37F 37F 36A LEFT MARGIN (00 = COL 1 on CRT) ^OL 00 INITRM 380 38TO CMD [G] 47 RVELIM 3D8 3D8 389 MM " " DATA DELIMITER [,] 2C RVQUOT 3D9 3D9 38A MM " TO DELIMIT ENCLOSED VALUES ["] 22 3DA 38B 00 TXBACK n/a 38C " [/] 2F n/a 38D " [B] 42 VARCH1 3DB 3DB 38E MM " " START KEYWORD [&] 26 VARCH2 3DC 3DC 38F MM " " END " [&] 26 3DD 3DD n/a MM " " OMIT BLANK LINES [*] 2A VAROPC 3DE 3DE 390 MM " " SEP VAR NAM & OMIT CHAR [/] 2F 3DF 3DF 391 MM " " OMIT LINE IF VAR IS NUL [O] 4F n/a n/a 392 ADDRESS OF MM COMPARISON OPERATORS 96 03 n/a n/a 394 " " MM LOGICAL " B7 03 COMPOP n/a n/a 396 MM COMPARISON OPERATORS 3C 3E 00 FD <>..><..<=..=<..>=..=>..<..>..=.. 3E 3C 00 FD 3C 3D 00 FC 0 36B RIGHT MARGIN (LESS 1, UP TO WID-4) ^OR 40 INITSR 381 381 36C SUB/SUPER SCRIPT ROLL IN 1/48'S .SR 03 382 382 n/a 00 00 00 INITIAL Edit Set-up Default --------------------- --------- INITWF 385 385 36D WORD WRAP TOGGLE ^OW FF (FF=on) +1 386 386 36E JUSTIFY " ^OJ FF +2 387 387 36F VARIABLE TABS " ^OV FF +3 388 388 370 SOFT HYPHEN " ^OE 00 +4 389 389 371 HYPEN-HELP " ^OH FF +5 38A 38A 372 CTRL CHARS & SFT HYPN DISP " ^OD FF +6 38B 38B 373 RULER LINE DISPLAY " ^OT FF +7 38C 38C 374 PAGE BREAK DETERMINATION " FF +8 38D 38D 375 PAGE BREAK DISPLAY " ^OP FF +9 38E 38E 376 LINE SPACING ^OS 01 +A 38F 38F 377 FF = COL MODE; 00 = BLK MODE ^KN 00 +B 390 390 n/a 00 00 NONDOC 391 392 378 DIRECT ENTRY 00=DOC/ FF=NON-D 3D 3C 00 FC 3E 3D 00 FB 3D 3E 00 FB 3C 00 FA 3E 00 F9 3D 00 FE LOGICP n/a n/a 3B7 MM LOGICAL OPERATORS 2E 41 4E 44 2E .AND./TRUE/FALSE/.OR 0 F 2 4 52 2E 00 FE 00 00 00 00 HZONE 399 39A 3C9 HYPHENATION ZONE (letters overhang) 04 39A 39B 3CA ADDRESS OF VOWEL TABLE D3 03 39C 39D 3CC ADDRESS OF NOT-CONSONANT TABLE CEOC 00 DOTSON 396 397 379 ENABLE DOT COMMANDS (00=DISABLE) FF DECCHR 392 393 37A DECIMAL POINT CHARACTER [.] 2E 393 394 n/a 00 DOTCHR 394 395 37B CHAR TO BEGIN DOT COMMANDS [.] 2E 37C [B] 42 37D " [U] 55 37E " [G] 47 37F " [N] 4E 380 " [W] 57 381 " [B] 42 382 " [D] 44 383 MM CONDITIONAL CHAR [IF] 46 49 385 [S] 53 BLNCHR 395 396 386 NON-BREAK SPACE CHAR ^O 0F 397 398 n/a 00/00 CMTCHR n/a n/a 387 COMMENT CHAR [;] 3B ENDEXP n/a n/a 388 MM CHAR FOR GO 03 VOWTAB *39E 39F 3CE TABLE OF VOWELS 59 5B 5D 7B 7D Y,[,],{,} NONCON *3A3 3A4 3D3 TABLE OF NON-CONSONANT LETTERS 41 45 49 4F 55 A,E,I,O,U 00 00 00 00 Screen Right Line-end Flags ----------------------------- BOFCHR 3AD 3AE 3DD BEFORE START OF WS FILE FLAG [:] 3A CONCHR 3AE 3AF 3DE LINE CONTINUES BEYOND " [+] 2B EOFCHR 3AC 3AD 3DF AFTER END OF WS FILE " [.] 2E FDTCHR 3B4 3B5 3E0 LINE HAS MAILGERGE COMMAND " [M] 4D HARDCR 3B3 3B4 3E1 HARD CARRAIGE RETURN " [<] 3C LFCHR 3B0 3B1 3E2 LINE ENDS IN LF W/O CR " [J] 4A OVPCHR 3AF 3B0 3E3 NEXT LINE OVERPRINTS THIS LN" [-] 2D PAGCHR 3B1 3B2 3E4 PAGE BREAK (goes with -----)" [P] 50 SOFTCR 3B2 3B3 3E5 END OF LIN W/WRDWRP,SOFT CR " [ ] 20 n/a n/a 3E6 [I] 49 3B5 3B in WS text - zeros with slashes and foreign char (causes messy WS text and rt. mar., if justitified - do ^OJ last); last byte MUST be 00> BSCHR 42D 42D 43B BACKSPACE CHARACTER ^H 08 NOFTAB - No file Command Table ------------------------------------ NOFTAB 430 430 43C ^D 04 00 00 01 434 440 " ^N 0E 02 02 01 438 444 " ^H 08 00 04 01 43C 448 " ^X 18 00 2D 2D 440 44C " ^J 10 00 06 01 444 450 " ^M 0D 00 08 01 448 454 " ^Y 19 00 0A 01 44C 458 " ^F 06 00 80 29 450 45C " 6 n/a 00 00 Other Characters ------------------ SOFHYC 3B7 3B8 3E7 SOFT HYPHEN CHAR [-] AD PAGFIL 3B8 3B9 3E8 PAGE BREAK CHAR [-] 2D MARKS 3B9 3BA 3E9 START OF BLOCK CHAR 42 3BA 3BB 3EA END OF BLOCK CHAR 4B 3BB 3BC 3EB 00 00 00 3BE 3BF 3EE PLACE MARKERS <1>,<2>,etc 30 31 32 33 34 35 36 37 38 39 00 Printing Defaults 00 = No; FF = Yes ------------------- ------------------ PODBLK 3CA 3CA 3F8 PRINT OUTPUT TO A DISK FILE 00 +1 3CB 3CB 3F9 USE FORMFEED AT TOF & END OF EACH PAGE 00 +2 3CC 3CC 3FA SUPPRESS PAGE FORMATTING 00 +3 3CD 3CD 3FB PAUSE BETWEEN PAGES 00 3CE 3CE n/a  ^Z 1A 00 C1 29 454 460 " ^W 17 00 C1 29 458 464 " ^L 0C 00 16 01 45C 468 " ^R 12 00 0C 01 460 46C " ^O 0F 00 12 01 464 470 " ^E 05 00 14 01 468 474 " ^V 16 00 9A 30 n/a 478 " ^S 13 00 0E 01 46C 47C " 00 00 00 00 470 480 " 00 00 00 00 474 484 " 00 00 00 00 478 n/a " 00 00 00 00 46C 484 EOF 00 VTAB - Various Tables --------------------------  00 00 00 NOUFF 3D1 3D1 3FC FF = SUPPRESS FORMFEED QUESTION ABOVE 00 3D2 3D2 n/a 00 ITPOPN 3D3 3D3 3FD OMIT PAGE NUMBERS (00 = PRINTS THEM) 00 ITMIJ 3D4 3D4 3FE MICROJUSTIFICATION FF ITBIP 3D5 3D5 3FF BI-DIRECTIONAL PRINT FF 3D6 3D6 n/a 00/00 FNWSCM 3E7 3E7 400 FILENAME OF WORDSTAR PROGAM [00 WS COM] DSKTNA 3F3 3F3 40C " " MESSAGES [00 WSMSGS OVR] FNOVLY 3FE 3FE 418 " " OVERLAYS [00 WSOVLY1 OVR] FNMRGP 40A 40A 424 " MERGEPRINT/MAILMERGE [00 MAILMRGEOVR] AUTOBS 422 422 430 AUTO BACKSPACE TABLE 00 00 00 00 00 53D 545 551 " WORD TO RIGHT ^T 14 00 xx/xx 541 549 555 INSERT MODE ON/OFF ^V 16 00 xx/xx 545 54D 559 REFORMAT TO END OF PARAGRAPH ^B 02 00 xx/xx 54D 555 55D INSERT LINE ^N 0E 00 xx/xx 551 559 561 TAB ^I 09 00 xx/xx 555 55D 565 CARRIAGE RETURN ^M 0D 00 xx/xx 559 561 569 INSERT PRINT CTRL CHAR ^P 10 00 xx/xx 55D 565 56D HIDE/DISPLAY MARKED BLOCK ^KH 0B 08 xx/xx 561 569 571 MARK BLOCK BEGINNING ^KB 0B 42 xx/xx 565 56D 575 " " END ^KK 0B 4B xx/xx 569 571 579 SET/HIDE MARKER 0 ^K0 0B 30 xx/xx 56D 575 57D " " " 1 ^K1 0B 31 xx/xx 571 579 581 " " " 2 ^K2 0B 32 xx/xx 575 57D 585 " " " 3 ^K3 0B 33 xx/xx 779 581 589 " " " 4  HOME (TOP LFT OF SCRN) ^QE 11 05 xx/xx 4BD 4C1 4C9 " START OF BLOCK SCREEN ^QB 11 42 xx/xx 4C1 4C5 4CD " END OF BLOCK ^QK 11 4B xx/xx 4C5 4C9 4D1 " PLACE BEFORE LAST CMD ^QP 11 50 xx/xx 4C9 4CD 4D5 " SOURCE OF MOVE, ETC. ^QV 11 56 xx/xx 4CD 4D1 4D9 " MARKER 0 ^Q0 11 30 xx/xx 4D1 4D5 4DD " " 1 ^Q1 11 31 xx/xx 4D5 4D9 4E1 " " 2 ^Q2 11 32 xx/xx 4D9 4DD 4E5 " " 3 ^Q3 11 33 xx/xx 4DD 4E1 4E9 " " 4 ^Q4 11 34 xx/xx 4E1 4E5 4ED " " 5 ^Q5 11 35 xx/xx 4E5 4E9 4F1 " " 6 ^Q6 11 36 xx/xx 4E9 4ED 4F5 " " 7 ^Q7 11 37 xx/xx 4ED 4F1 4F9 " " 8 ^Q8 11 38 xx/xx 4F1 4F5 4FD " " 9 ^Q9 11 39 xx/xx 4F5 4F9 501 " TOP OF FILE ^QR 11 12 xx/xx 4F9 4FD 505 " END OF FILE ^QC 11 03 xx/xx 4FD 501 509 FIND  ^K4 0B 34 xx/xx 57D 585 58D " " " 5 ^K5 0B 35 xx/xx 581 589 591 " " " 6 ^K6 0B 36 xx/xx 585 58D 595 " " " 7 ^K7 0B 37 xx/xx 589 591 599 " " " 8 ^K8 0B 38 xx/xx 58D 595 59D " " " 9 ^K9 0B 39 xx/xx n/a 599 n/a 591 59D 5A1 MOVE A BLOCK TO HERE ^KV 0B 16 xx/xx 595 5A1 5A5 COPY " " " ^KC 0B 03 xx/xx 599 5A5 5A9 DELETE " ^KY 0B 19 xx/xx n/a n/a 5AD BLOCK/COLUMN MODE TOGGLE ^KN 0B 0E xx/xx 59D 5A9 5B1 ^KZ 0B 1A xx/xx 5A1 5AD 5B5 INTERRUPT COMMAND IN PROGRESS ^U 15 00 xx/xx 5A5 5B1 5B9 SAVE & EXIT WS ^KX 0B 18 xx/xx 5A9 5B5 5BD " & QUIT EDIT ^KD 0B 04 xx/xx 5AD 5B9 5C1 " & CONTINUE EDIT ^KS 0B 13 xx/xx 5B1 5BD  ^QF 11 06 xx/xx 501 505 50D FIND & REPLACE ^QA 11 01 xx/xx n/a 509 511 FIND MARKED SPELLING ^QL 11 0C xx/xx 509 511 515 SCROLL DOWN CONTINUOUSLY ^QW 11 17 xx/xx 50D 515 519 " UP " ^QZ 11 1A xx/xx 531 539 51D DELETE TO BEGINNING OF LINE ^Qdel 11 7F xx/xx 535 53D 521 " " " " " ^Q_ 11 1F xx/xx 539 541 525 " TO RIGHT END OF LINE ^QY 11 19 xx/xx 549 551 529 REPEAT NEXT COMMAND ^QQ 11 11 xx/xx 505 50D 52D " LAST " ^L 0C 00 xx/xx 511 519 531 SCROLL DOWN 1 LINE ^Z 1A 00 xx/xx 515 51D 535 " UP 1 " ^W 17 00 xx/xx 519 521 539 " DOWN 1 SCREEN ^R 12 00 xx/xx 51D 525 53D " UP 1 " ^C 03 00 xx/xx 521 529 541 DELETE CHARACTER LEFT DEL 7F 00 xx/xx 525 52D 545 " " " ^_ 1F 00 xx/xx 529 531 549 " " UNDER CURSOR 5C5 QUIT - NO SAVE ^KQ 0B 11 xx/xx 5B5 5C1 5C9 READ FILE FROM DISK TO HERE ^KR 0B 12 xx/xx 5B9 5C5 5CD WRITE MARKED BLOCK ONTO DISK FILE ^KW 0B 17 xx/xx 5BD 5C9 5D1 DELETE FILE ON DISK ^KJ 0B 0A xx/xx 5C1 5CD 5D5 FILE DIRECTORY ON/OFF ^KF 0B 06 xx/xx 5C5 5D1 5D9 PRINT FILE FROM DISK ^KP 0B 10 xx/xx 5C9 5D5 5DD CHANGED LOGGED DISK DRIVE ^KL 0B 0C xx/xx 5CD 5D9 5E1 COPY FILE ^KO 0B 0F xx/xx 5D1 5DD 5E5 RENAME FILE ^KE 0B 05 xx/xx 5D5 5E1 5E9 SET LEFT MARGIN ^OL 0F 0C xx/xx 5D9 5E5 5ED " RIGHT " ^OR 0F 12 xx/xx 5DD 5E9 5F1 " TABS ^OI 0F 09 xx/xx 5E1 5ED 5F5 CLEAR TABS ^ON 0F 0E xx/xx 5E5 5F1 5F9 SET MARGIN & TABS FROM FILE LINE ^OF 0F 06 xx/xx 5E9 5F5 5FD WORD WRAP TOGGLE ^OW 0F 17 xx/xx 5ED 5F9 601 JUSTIFICATION " ^OJ 0F 0A xx/xx 5F1 5FD 605 VTORES ONE (ERASED) CHAR TO RIGHT ^D 04 LITCHR 680 693 PREFEX TO TAKE NEXT CHAR LITERALLY ^P 10 DIRCHR n/a 694 DISPLAYS FILE DIRECTORY ^F 06 n/a 695 MOVES (SCROLLS) FILE DIRECTORY DOWN ^Z 1A ERELCH 685 696 MOVES (SCROLLS) FILE DIRECTORY UP ^W 17 STPCHR 684 697 EMERGENCY STOP CHAR ^U 15 685 68D 698 CHAR TO START OPNS AFT EMERG STOP Esc 1B 686 68E n/a 00/00 Printer Interface Parameters ------------------------------ POSMTH 690 690 699 TYPE OF PRINTER FF BLDSTR 691 691 69A NUMBER OF STRIKES FOR BOLDFACE ^B 02 DBLSTR 692 692 69B " " FOR DBL-STRIKE ^D 02 693 693 n/a 00 00 00 -------------------------------------------------- PSCRLF 696 696 69C STR TO DO CR & LF ^M #02/0D 0A 00 00 00 PSCR 6A1 6A1 6A7 STR TO DO CR ONLY CR #02/0D 00 00 00 00 00 PSHALF 6A8 6A8 6AE STR TO DO CR & HALF LF #00/0D 0A 00 00 00 00 PBACKS 6AF 6AF 6B5 PRINT BACKSPACE ^H #01/08 00 00 00 00 PALT 6B5 6B5 6BB SET ALT CHAR FONT ^PA ## 00 00 00 00 PSTD 6BA 6BA 6C0 RESET STD CHAR FONT ^PN ## 00 00 00 00 ROLUP 6BF 6BF 6C5 ROLL CARR UP PARTIAL LINE ^PT ## 00 00 00 00 ^JA OA 01 xx/xx XTAB 63D 655 EXPANSION SPACE FOR EDIT CMD TABLE 00/00 FPTAB 662 67A FILE PRINT COMMAND TABLE 10 00 28 43 A1 00 BA 29 17 00 C1 29 16 00 9A 03 00 PNFTAB 677 67F 68B POINTER TO NOFTAB 3C 04 PVTAB 679 681 68D " " VTAB 89 04 PFPTAB 67B 683 68F " " FPTAB 7A 06 Special Edit command on the "D" Screen ------------------------------------------ CLCHR 67E 691 ERASES ONE CHAR TO LEFT ^S 13 CRCHR 67F 692 RESred, footings are fouled up> ROLDOW 6C4 6C4 6CA ROLL CARR DN PARTIAL LINE ^PV ## 00 00 00 00 USR1 6C9 6C9 6CF USER FUNCTION #I ^PQ ## 00 00 00 00 USR2 6CE 6CE 6D4 " #2 ^PW ## 00 00 00 00 USR3 6DE 6D3 6D9 " #3 ^PE ## 00 00 00 00 USR4 6D8 6D8 6DE " #4 ^PR ## 00 00 00 00 RIBBON 6DD 6DD 663 CHANGE TO red ribbon toggle 1st ^PY ## 00 00 00 00 RIBOFF 6D2 6E2 6E8 " black " " 2nd ^PY ## 00 00 00 00 ******************************************************************** * Keep in mind that the labels only suggest some uses; so if * * your printer only has one black ribbon, you can patch RIBBON * * & RIBOFF to permit you to use ^PY toggle to serve your needs. * * * *Again need mor spac fo give printe contro string? * *Yo ca "steal spac fro th next use are (an loos * *furthe us o tha WordSta comman an any remai9 POSEND 733 733 732 " " SEND CHAR ENTRY D3 POOP 734 734 733 " " OUTPUT DATA PORT ADDRESS 04 00 C9 POINP 736 737 736 " " INPUT CHAR ENTRY DB PISTAT 738 738 737 " " INPUT STATUS PORT ADDRESS 05 00 E6 POINSK 73B 73B 73A " " INPUT BIT OF INTEREST 02 EE POIM *73D 73D 73C " " INPUT BITS THAT CHANGE 02 37 C0 DB POIP 741 741 740 " " INPUT DATA PORT ADDRESS 04 00 B7 C9 ------------------------------- PUBSY 74C 74C 744 JMP TO USER PRINTER BUSY TEST ROUTINE 00 B7 C9 PUSEND 74F 74F 747 JMP TO USER CHAR OUTPUT ROUTINE 00 00 C9 PUINP 752 752 74A JMP TO USER CHAR INPUT ROUTINE 00 37 C9 ------------------------------- ACBSY 758 758 74D JMP TO USER ALT CONS BUSY TEST RTN 00 B7 C9 ACSEND 75B 75B 750 SEND A CHAR TO ALT CONS CD 6C 07 CD F0 ning space * * in that use area e.g USR ca exten int USR4). * ******************************************************************** PSINIT 6E7 6E7 6ED STR TO INITIALIZE PRINTER #01/0D 00 00 00 <"lead-in string"; end with ; 00 00 00 00 00 try 06,1B,40,1B,41,06,0D to start 00 00 00 00 00 up Epsons with half LFs & full LFs 00 00 - See PSCRLF & PSHALF> PSFINI 6F8 6F8 6FE STR TO TERMINATE PRINTING ## 00 00 00 00 <"trail-out string" 00 00 00 00 00 try 02,1B,40 on Epsons> 00 00 00 00 00 00 00 SOCHR 70B 70B 70F STRIKEOUT CHAR try 2F(/) or 58(X) [-] 2D ULCHR 70C 70C 710 UNDERLINING CHAR [_] 5F PRINIT 70D 70D 711 NOP or JMP STR TO INIT CUSTOM PNTR 00 00 C9 PRFINI 710 710 714 " " " " TERM " " 00 00 C9 713 713 n/a 00 00 00 00 CSWTCH 717 717 717 SWITCH TO SELECT PRINTER DRIVER 00 <00=primay list dev 20 C3 63 07 ACINP 764 764 759 INPUT CHAR RTN CD 6C 07 CD 55 1D C4 6C 1D 57 ACFIN 76E 76E 763 EXIT ROUTINE 78 ACSTA1 76F 76F 764 SET/RESET IOBYTE 32 03 00 7A B7 C0 37 C9 ACSTAR 777 777 76C ENTRY ROUTINE START 57 3A 03 00 47 E6 FC F6 CONFIE 77F 77F 774 ALT CON DEVICE ASSIGNMENT 01 C3 64 07 <00 = TTY; 01 = CRT> PROTCL 786 786 778 PRINTER PROTOCOL TYPE 00 <00=none; 01=ETX/ACK; 02=XON/XOFF> EAKBSZ 787 787 779 ETX/ACK MSG BUFFER SIZE 7F 788 788 n/a 00 00 < Most of the following are only used by daisywheel printers> ------------------------------------------------; 01=WS' port drvr 02=user prntr drvr; 03=OEM drvr 04=alt console drvr> HAVBSY 718 718 718 SWTCH TO TELL IF PRINTER BUSY, FF=YES 00 719 719 --- 00 ------------------------------- LIBSY 71A 71A 719 JMP TO BSY TST RTN; CSWTCH=00,OUTPUT 00 B7 C9 LISEND 71D 71D 71C ROUTINE TO SEND CHAR TO LST DEV 5F 0E 05 CD 05 00 B7 C9 LISINP 725 725 724 JMP TO USER CHAR INPUT ROUTINE 00 37 C9 -------------------------------- POBSY 728 728 727 PORT DRIVER BUSY STATUS ENTRY DB POSTAT 729 729 728 " " STATUS ADDRESS 05 00 E6 POMASK 72C 72C 72B " " OUTPUT BIT OF INTEREST 01 EE POOM 72E 72E 72D " " OUTPUT BITS THAT CHANGE 01 37 0 B7 C----------------- DVMILE *790 n/a 790 77A VERT MOTION INDEX LEADIN STR #02/1B 1E 00 00 DVMITR n/a n/a 77F VERT MOTION INDEX TRAILING STR #02/1B 02 00 00 DVMMIN n/a 795 784 MAXIMUM DVMILE 01 00 DVMRNG n/a 797 786 MINIMUM DVMILE 7E 00 DHMILE 799 779 788 HORIZONTAL MOTION INDEX LEADIN STR #02/1B 1F 00 00 DHMIFG 79E 79E 78D 00 DHMIN 79F 79F 78E MAXIMUM DHMILE 01 00 DHRNG 7A1 7A1 790 MINIMUM DHMILE FE 00 DFWD 7A3 7A3 792 SET FORWARD PRINT #02/1B 35 00 00 DBAK 78A 7A8 797 SET BACKWARD PRINT #02/1B 36 00 00 DSP 7AD 7AD 79C FORWARD SPACE #01/20 00 00 00 DBS 7B2 7B2 7A1 BACKWARD SPACE #01/08 00 00 00 DLF 7B7 7B7 7A6 LINE FEED VMI #01/0A 00 00 00 DRLF 7BC 7BC 7AB REVERSE LINE FEED #02/1B 0A 00 00 DPHSPC 7C1 7C1 7B0 PRN PHANTOM CHAR try Esc Y=cents ^PF#02/1B 59 00 DPHRUB 7C5 7C5 7B4 PRN PHANTOM RUBOUT try Esc Z=b bar ^PG#02/1B 5A 00 7C9 7C9 n/a 00/00 DNPROS 7DE 7D3 7B8 SUPPRES 1BB7 ^J.Help..^K.Block.x ---- 1BCA ..S.Underscore...| ^PS 1BCC .O.Non-break.space..| ^PO 1BF1 .C.Printing pause....| ^PC 1C07 ^Q.Quick.^P.Print..x ---- 1C1A ..X.Strikeout....| ^PX 1C2C .F.Phantom.space....| ^PF .E.wide.print.End...| ^PE 1C41 .Y.Other.ribbon.color| ^PY .Y.Italics.begin/end.| ^PY 1C57 ^O.Onscreen.....x ---- 1C6A ..V.Subscript....| ^PV 1C7C .G.Phantom.rubout...| ^PG .R.EmpS PROPORTIONAL SPACING: 00=On 00 DMJWB 7D4 7D5 7B9 ALT MICROJUSTIFY ALGORITHM: 00=N0 00 PSTAB 7D8 7D8 7BA PROPORTIONAL SPACING TABLE 00/00 **************************************************************************** 83A 83A 83A END OF USER PATCHING ACCESSABLE AREA ..WSBIBLE.DOC RULER #3 (Put cursor on line and hit ^OF to create new ruler) ..-----!-------!-----------------------!----!----------------------!---- WSMSGS.OVR V3.30 PATCHING by A. F. Remich No tha yo hav see th inne working o WS.COM yo migh wan t kno ho t patc th WSMSGS.OV prin men scree t remin yo (an you ne secretary?) jus wha change yo mad i th variou printe patc areas Her ar th location o th variou item tha ar intende t cu th use an som example o ne entries h/Dbl.prn.end.| ^PR 1C91 .....................| --- .W.Wide.print.begin..| ^PW ---- 1CBA ..T.Superscript..| ^PT 1CCC .RET.Overprint.line.| ^PRET.Q.Sub/Superscpt end| ^PQ 1CE1 .Q(1).W(2).E(3).R(4).| --- .RET.Overprint.line..| ^PRET Yo wil hav t mak an desire change usin DDT.CO (o on o th friendlie program availabl i th publi domain) Yo ca eve us th "auto-patching techniqu presente later Then save: A>SAV 11 WSMSGS.OVR|<------20 col------>|<-------21 col------>|<-----17 col---->x | | | .po4 ENTRIES IN EACH DATA FIELD: (NOTE spac "0E a en o line) CTRL CTRL LOCATION CURRENT ENTRY CHAR SAMPLE NEW ENTRY CHAR ---- --------------------- ---- --------------------- ---- 1A8A < Start of PRINT MENU> 1B51 .A.Alternate.pitch...| ^PA .A.Compressed begin..| ^PA ---- 1B7A .B.Bold.D.Double.| ^PB/^PD 1B8C .H.Overprint.char...| ^PH 1BA1 .N.Standard.pitch....| ^PN The beauty of this patching technique is that you have a machine readable record of YOUR OWN patches to tailor WS.COM. Now, when you damage your working copy of WS.COM, it will not take forever and a day to load in all of those patches that you worked so hard to develop and test - just overlay the .HEX file on WS.COM and you are back in business in a few minutes. The step-by-step procedure: 1. Open a WordStar file in NON-DOCUMENT (N) mode called MYPATCH.ASM. 2. Read a copy of AUTOPAT.ASM (with ^KR) into MYPATCH.ASM. 3 Delet thos part (^KB,^KK,^KY that are o n interest. 4. Edit and tailor the remaining parts to suit your own needs. 5 Ruth fina version of MYPATCH.ASM thoug "filter to insure than stray WS high bit document controls are in the file, by either the useful PD utility WSDOCON.COM or by using: A>PIP MYPATCH#.ASM=MYPATCH.ASM[Z] 6. Assemble your version of MYPATCH&.ASM to get MYPATCH&.HEX file. A>ASxQ 5jzb Se.dX,p L7Mq5{qRom-~V0LzK1,+ K:`Exqpe8wI3BlYm-Xƽ+Qbӏ/dgp ?8oTdmK i~؀)f/2bXl7hĦ#GV+7(.#WwWkbKA-R+sHq!6kA R%ayu`?z)H&r@)Z AS\^b{qL ˳Slt9s{w9xWbiƇc9 kUa\8lNsuiQWzFbiN㡽Fj ǪGnWtG)xO~^jz,@8Wӄfڣ2POp5]jxi?_`K}9PLMq5{qRo0h#͔0N2 `z4 Wd ٛmq6le8az[T!9Q|%XkXD3jⰥR%߼:t7).*Yp 4aK -,zT2֞C ٰZ49,fj %Յ)C]%b)cȥ 7)wa!6ϋًk tExGjY)>/f/bjTb}}yD{.ֈ 8 eH;J_ж>ߣ=ȊPkĂ2Bhwn`X-C([H"n?m߽~v r@qB0qmO{Y@8VRo! [`z)7{Y8[HA2^r}}oӋ*bBce@] Vːw"n?m}+{ uF,X@.Cp TQ}ֶ>?Gܻ F MYPATCH (n .AS extensio discar .PR file) 7. Use DDT.COM to load WS.COM into memory A>DDT WS.COM 8. Use DDT.COM to overlay the .HEX file onto WS.COM -IMYPATCH#.HEX -R 9. Exit DDT.COM and save your new version of WordStar -G0 A>SAVE 69 WSNEW.COM (for v3.30), or A>SAVE 62 WSNEW.COM (for v3.0), or A>SAVE 52 WSNEW.COM (for v2.26) 10. Use DDT.COM to inspect WSNEW.COM to be sure the patches are in place A>DDT WSNEW.COM -Snnnn or -Dnnnn 11. Run WSNEW.COM to test each of the new features !!! (Like them ???) 12. If you want to, rename WSNEW.COM - but use WINSTALL.COM * NOTE: The PD utility MLOAD.COM does steps 7 thru 10 in just one step A>MLOAD WSNEW.COM=WS.COM,PATCH.HEX ***** No yo ar read fo th bi tim Writ me  bҠu%].{= =#Sg/@iƇ_wuU2e־a*p ,KX#aKTK+;`mZZ3U`\ՠRLasB#U%kvh|E,PdoYmжa R ,iq$\?ŋ>Ŷs?Rl۟)bn6:ݤضqٜn|J1K8dWg)ؾ09& ZA]puiN1C9Ƈ+4"}U߂9T۟o*ќb `1N7}n.Nz&,n>,֯WRLwty~ VjdEvm=b!["\=w?z)KAAqz[mnH1{9(sMaR,bal+ 2lq)#++U'a`q܏邁A,4VK)2Fwa=8jⰥt)x!řg)8BS\^ܫX#[QK&pa8WCJ:L=sX2,߼:)f/U]z^ b '{&iW.ֈŖzX:̂,MYzxg%pP:C/8+B;ЪB/byuH)f/U]-/8'{&i`Z, ]bs Wh|Ee1N7܍WB)RtEp$SBl6,)%,n>^2Ƈϟpݠ+ `J$^{)0AJ1HM8lNs7>\^d WSEXPAT DQCWSEXPAT AQM#dWSEXPAT HQX@WSEXPAT SUBDUFROM/TO ID EvWSEXPAT.DOCT  !"#$%&'()*+,-./0123456789o:;<=>?@ABCDEFGHIJKLMNOPQRSm{/uȱF,t9݋Km Ǘooۧ)ZyC9Sy?Ӈ_S 9Z=K19xWX3@h|E,X*~O$k8ޣ u)ǫit3aYl9ug2@hd )KK1c;e2@X/|_sbBNٛe=8ys9cj ;J1}r`!6,(0L{\]G4bRllwLbzXRxYK1C؀a5bހ yd$ց\Bl6aLM KuF,ԧhً3XrX#7)w)~0p L7Mq5{qRo!4X#%z48t)8zdqu}T1e R,;&bȀayu@ #הb~E@]F2p02Vk&kpz p L7ӾuBp(+ZB)U 7=8uRLޛR?5RLAWb(7X*kRC] RcL-VvV }K\wFA2`iX` K^\`!6V Pciegu0A&lXmٷ u@2)Chۃ2ys9hĂHkufxAF Bl65kR0sVQ 7X*j ;"ò;\#HqS@`?( #ʻX`o^ *r;=߹;qPS@ 5iW-ZHaX cV KA/ղ" u=*u 1+yϩK1"uXo>>޾SOu^ eEzU@ *b 5V^1N/ a0NSb?.u'TKCj3R MC:Qj.vWSEXPAT.ASMZ  !"#$%&'()*+,-./0123456789:;<o=>?@ABCDEFGHIJKLMNOPQRSTUVWXY04L7M ǍpD2t vƺMpc_;0DnM#Lz_M3^FE c.GL"M򌩏-qck0E  [I|>r }d?C䆫-hlE 4 &["yϰEˍ|>Dd4'*Mް0}\&N&TFacMpvIELԞĆ=tM,Jc;Tb80 DclBeQrlJ܄3^F΋M_S4b6d(Y ~f=mm3܉RND%y J74j?Ý(5{Ce$aB۰(5&CeӱcDcg$6$J!Q{bBPiدL;`Kdnh܄yM=P=H.)d4QIh%eQJ:QJ(wM*$|}ޠvi.J'jAlohNg%N؈Ɔ=iO?&d݊phRTЄ(a ޢmR4qIp47q)*Zg.8$+%o؉6)ϯi'Jd~`d#jhyHrv(FS37DQEQEE VlP08;atvMɏQD[.8QrlJ bc]&8QBKc0=k2bJMDL+!Z(h q`׆cL1XD6BΎc:.ymd݊>aۉl`[Aq1XW6و&R5TVlPmMp!g'J[cW\&NCGCdcѤhM0}2e*Mް0]0xO(ŮJdELԝkGCdc1 ;dD)LYbdmoD69;QQj.u'TKCj3R MC:Qj.ȗc0W!Nw>_}x~fqA\wooDE b۫9O&?-Ͼ[ӓh".Dʶqt{>{z:[on/ֻۋO<k<ο[ql~[`|bw!*Z`[ξ`}ħ7wq}a8?g?pv >_ox|z:Gzj}~-Wnk<_|z:_?u9p~{>?{?}!Z qOOg_~tjwkv L>_!<> mΞvءz޾ZoE v_?af_o_Ϗ8}ī_|lǸ>OgߞW>\b5vq޾Zoŗ XYp>[/D m[`s=iXSB8TΈO{kJgDk >iXSB8 lhx0UӞo;*!֔P7606uH|sG%ĚvWњO{XSB8 .8 ~L|CG%Ě_$G*Z/O{uTB)Zomp_$v(J|ӶXSFyXSB ΅ñqmӞ档bM M9fnO{~訄XSB "Zý` Yd0Xows$ -Zh)0,uY+ܡM9ű uboh)u'۷QmCdLcX(4mC'Jed6yƢqҪ38ưbQih^NTt)b vv&,#LǘRuvtfcÊEEɺ^;QтCIcK`7c4!KvX`}5zx +=&X gx`(*|2)ySYA m2QK? 66D)'aDa%Rs;PmbK6,Je|dl:vhc$6$J!Q{bBPiدL':C&{p2R4ᒲ(%I(%IYruԊ;&{hDE)yRgv%S1À6D(FrJ VqF1eҼ5 3^bCg8PYrK&܈Rnz/~ڻhE4M,JzzroDE)tMe}Œ~ڻh ;IE)TOOn(單 Wߣml!(䦽5 3^-{3Ϣ[ٍ(單 Wߣmlq)J:;7[2^aK=&{`Q-FTrKT+x#sÆa,Z^%;IE)TOO27[2^aKaG XϰLhgQ-ӓ卨(單 W?`ǐ|F4.(p#*J-ڻhQrKEE)R{KΈRnfQQ-mEƋRn^RniK.Z#JEEMhӞ~xiJ~e:& 0Ӟ?Mh*3/$*J쳨ƋRn^RniK.Z#JEEMhӞ~xiJ~e:& ?IJKLMNOPQRSTUVWXY04L7M:K=>r`ju .)WQ>L >OkQJ^|+Cg30ͻ7.{|I(}̙"܉<63M:K3Q) 18;aɺ%D)4ܝ|h;*x/~/R>gR/^xھ|)J$h Y"*eƋy"KԠ?E)4ܝy'J$o4,}DdhF8nIYQKvޝ|YI{A!yƺMp9;#%ZDvsGe1Zg``{`q06t8ɧطħ=ͯvSA IFɺ1Ӟ׵vSLp.R 6.O{먌.ymiOoێʦcDpv&"Dhydgy_r\ذxhmYO|ݼ&caza=gmف qd6&#:tMpvpaBhNTnq0L3.aÊp,ZplA_1+aӱdsɯDEɺ̥(7֯`{5_/7[\T[Q)h3%L MLoMgQQz7UƮ`:Fҁ!*Zp ʼO>-d=b:ۛϢnqc+Xz_M3^FQтgvSL<ʍ 9s,[nM#Vɧͱ~?K({-AwOO8s, .Gv(D٭뻴RioEaRrSbcEW-@[dбX"=!YVz(7T-eE&?SX"@PG`%%I.~cd*K (5G7X")篱XJ S15zX"篩)0v,킥{:iN{ C kş1ǿ?,X*~O$k8ޣ u)ǫit3aYl9ug2@hd )KK1csid ^Ÿ:-0 wCox-xCu>ሧgbM zlѺ >ijZ*!֔P7vX@|ӴoXSB8!7x0]ⓞoZ*!֔P7v0 ;6uH|uK%ĚwњOz޴TB)Zoj\ZV&>izR jq7t3Kⓞ-kJg;\7t3y.*ʱoZ*!֔E#>i-kJd86@|Z*!֔%hJ5%dذh)< PEu|BߢBc΢1Xr]$9dSPG&"*r]S)#g ֡\/_2쀜|EcࣿLҀs`~h_ sFg0 Ծq/uO܈ǜ)iV4@QT˜i Yِ#F@rCvi9s_< Q;i: [*vͮ 4/h4/-ǣ]3^tn6-nL>t-؟%^a IO7q KѹY<4~ӴTv-;."5Gϰv!g'ZDӽ <3+Ȇ]_EhzⓞΧJ 靇h_\ ~aⓞZ*c  Ǒ 8G{C|˖J4 ɣ ~sQтgkv; ô:ҚF1,OD 1mKF~iZZmN&(Y9{o'u/9܈Rnh$*J-)FT%L ])d=b8ۛODE8SgMvT:i Kkh3PIK?Gg{<(}gdDE aѺ 0ϜN- *J-i1kQQ Mʆ}dMv /D)7t>Td`," ֡.Z'JiZ*Mw:$kvN-ϧ n1 p|!*Zt M ]2M~8uKEEi\' 7VlohZQrlDEɺ%ŝ퍨(Da;[QijEɱ%тg0C9"8x&*J-inFT G:.yM7x&*yHrvqj:DfKްCǍ(hO%A m+H5h:VRs iM7&κMpOP{fF(W7xC.Z; <оign_͏7T.EK4 EDE KKkhgMvHuqӾizيY NѸk"ݰE܅9´$MDY靏0;r4´)$h0wY`Ѡ5d=LԢ0- ~W; &Y/ZٺA:?@ABCDEFGHIJKLMNOPQRSTUVWXY0tL7ȗs0onC;=>x}~쿜-E`.&뱿|2)tpq} ] _}BwD ޝh^x W`?vWhշg|aV8p~\a_Φ__h-߭>pW;=>o_W *Z`_{|8~w _O߽;h-E>]>~ŷag]&8\?^_}[:E>]>~4~= ~=¸y%Z-$;|==~xxXp_x|{>}-3V+|Wx􈿯>p?D ؝ꈷ>\nu+Z-#V>ฺ;W8_oק8_]qw:D q!Vqp+ZϷzu>}VG>nu Z@>^:b\] т~;4"ʗɼqn/-;t/_l].Z'JeLj:^;[_Q9,G6y´ v.Rw]6y" g{ô1ta}q۞O-N15zcdݒ^|يҸNS+JijEɺ%ЊRwݞOVT[:[QB LpK69;#됓j$QCEQQ.Ӟʒ 2 D鲶Kb,2RD,T0D60]GQ!S2vbMAILMRGE.DOC  !"#$%&o'()*+,-./012345678 9:;<=>?@ABCDEFGHIJKLMNOr SQPQRSTUVWXYZ[\]^_`abcdefg hijklmnopqrstuvwxyz{|}~3]+V9uD62"^XUONLIGE><1-,)!o"o"}uH_D&7Uϛ\~(xIb"lqAE7yҏ ::CÒ eKa[{ *::[*YrBEMzH_&W=Ml"}{ۛHD&7pMlYEAX[E owG8̽u7x `(DA聼Acoa@h7x *<fsʅ>͔)l< b::[nɲ^lgl27OQQ,߀>kX1UAIXR3WB0)V>$)*!*!I&]ѻVq* E켇O*PLTpB|S1$ѮĊ R U bm ]CEKHBjz ; O8RlLM+/D69;QDv-; 7]Z2eQmi DELnϨXɇf_[Q.n6yq!2F1,Yj:7g2QZ*Mްv޸l F1,Yj:7g-0m-E6e:;;h 1raɢdݒϦVT`kjX9䍅i]p`Z-z_M e 3vhC޺1tX&&+J&*K6h_I&uSa(DT7\?; d{C(u7l70 cQ. k1<8 (Dքұ_VtvMa;R4ᒲ(%I(%IYruԈ'v݉R4Rv%ya@I>39lK 3LX&.xc^Qnzo0w: v:P=QQ Qz_o @]" !u,Jzq7:2bw: v@ًRnlo.oDE)7tFe}ł7x 4 DP]loQQ Qz_o w:h3YrCd{oDE)7zoH>3gQ ՓMV'*J3*C-qqڻh ;KE)7TO7FTrCgT[,xqqhx<.yP=fDE)7tFe}ł78ju0ΰbu^rCd{7:2b|3q/E)7TO7Í(TjugQ UОJ].-[#JEE)7R{C;/Jz)*J=ڻh:(j5OzbCT:K0Xԅt„>X.>(ꥨ(Tjux0QTԄ#>Njgpg +&h@s@z%L0HXzZtoA:^OX@[7~%{Ϡ,M&.^_ b.eiqzrnۨ,J)Z{<X.}7H/)8DG?A%Uas4ھH"qS*SJttdK\eBXH؉,%x|>|iK4*blcDfp%ΑLއtlHBNKS.w5 B7A)$)1k:3 KZUUt:Вŀ;97H;@rm-XUšp`$-t,{7HǛHη/ᅍz~2Y/N޾x}2׆w&ox=!( K΍0thX Hy7HͥӍK 5O&O7.y\Zߙ/֯?ݸKwn\obt z%HCo/e#%WC7H}q NoA:^O(lٗ8GrFEp,[1m+d>V9K?Q1$)*ZF>$)o',TQ``PAb::[E>FE ei K5x1}Q7QQl&: ,q  7)$hlJڇ$%KTaGoG-[*]x @Җ`H!>BG? rC U[hT %S%J9V RU9.+vUR9Dw.u]6 F_WC4Z@ M,;Aj L M,; 4B..+1:УHbto~E94B2[H*@G7,媍B y9BQ9=\Pr߼x7 @=C:sD~2YGo Q/M ;cQFC|?|w:s>^Ÿ:-0 wCox-xCu>ሧgbM zlѺ >ijZ*!"!jo'%tQ%mw|c+ܺБm׎z3N7Rc7r뻸z+h Ł[1<xꕫ9Q u5 b!W]uDe գS5Nf.&[¤*W9]ܺU&fSQϟ?8f-uh_U$rmףIB}lׯ+d-Yw.^]ZVPOFգWx#*ta+rNXŕo/Xwϟ7:`qBnœ*,)GxG;[GWnKr'Rzvwװd]t4_\ԙQT>}gT?}›6Bg=*az'ñ Wn?GwXhFAW~oA:D7>[G$ l z;5 a[@r`KaIro$)1$)A6A9VVq7j7bK T^UdS ǠD /X^VVq7q*-2[ #Ó*r7OX1ko%m3 8=K)d[!s3H-_x UxN3^$%Kt { rSpC-P3tt V[8**v"K |>| e)Dq# 7M`o\ lxtY[*m ZC ;!xto4*Rij7mjT)$)qA(XѨXb =tKd=`[kESoP = lw#man+[H /U܍lw#yoA:/Yx.RK, }h 5E Yu9Kx&9ba;~ᄅ* AzxJTPb PBA4K-PoA:/hꪕ+5*F,RI },^EW"[XE =TQf8GȪ.eHRBdY} =6ZŀL! %roNjpmit0(H n6CG?AO-z..(şGroA:η538pFb sm R Ê8L\hئ( =Tn䰋 |mg9=z/0PpXZ$-Qor(P(F"G7 hT _A FBB…a$4*Rron$ zAI7HLr`x7H YZ;U - I<wu6ÎUADm"*<Ɗ$K/e߄ZmlSGDM1JTmg:,Ͱb^.!I@TAdPER(WO\^7Hb`qϠaHBxIb"l1qD-*mK$˽ƛ}ltUq(;yDh*$)qaxq>t̪}}h[*V ұ[iC%.Wm$I^.%NJA:V TiHI;QȁaI t}*A:VZ Z(jHB t $Ls@?# ұ$QK /+mHBhYjX,$.Q@VA: $QBw%.o4:} /p d-8FKc,Й1,DLP$,K܁7HsշzjIHYT25DOoA:>NWШ^fi # AѕfHoDMZݳ2VnɲFbGࢀ耄,p;3t,9ɽ镫Ozz FORMAT LSTPcFORMAT MIL%MERGE DOCHHMr. or Ms.,First Name P.,Last Name,Title or Department,Company Name,Street Address or P.O. Box,"City, State",99999,000-999-9999,A brief note,...Version 1.1 Mr.,David G.B.,Brown,,,"4216 Ethel Avenue, #13","Studio City, CA",91604,818-906-9922,Renaissance Man,"Raises Hell, too" Ms.,Suc Q.,Blinde,Actress,,"4513 Hollywood Blvd., #69","West Hollywood, CA",99293,213-350-3399,Extremely good head,"cheap,too" .ig =========================================================== .ig || || .ig || M a i l M e r g e || .ig || || .ig || F o r m L e t t e r || .ig || u]o~KEWAR.BAS,.505 NULL.AQM,.216 NUMBER.NOT,.052 NUMBERS.PMS,.052 NUMCHG7.COM,.204 NUSUB.COM,.211 OAKS.BBS,.055 OMNI[XE =TQf8GȪ.eHRBdY} =6ZŀL! %roNjpmit0(H n6CG?AO-z..(şGroA:η538pFb sm R Ê8L\hئ( =Tn䰋 |mg9=z/0PpXZ$-Qor(P(F"G7 hT _A FBB…a$4*Rron$ zAI7HLr`x7H YZ;U - I<wu6ÎUADm"*<Ɗ$K/e߄ZmlSGDM1JTmg:,Ͱb^.!I@TAdPER(WO\^7Hb`qϠaHBxIb"l1qD-*mK$˽ƛ}ltUq(;yDh*$)qaxq>t̪}}h[*V ұ[iC%.Wm$I^.%NJA:V TiHI;QȁaI t}*A:VZ Z(jHB t $Ls@?# ұ$QK /+mHBhYjX,$.Q@VA: $QBw%.o4:} /p d-8FKc,Й1,DLP$,K܁7HsշzjIHYT25DOoA:>NWШ^fi # AѕfHoDMZݳ2VnɲFbGࢀ耄,p;3t,9ɽ镫Ozz || .ig || F O R M A T || .ig || || .ig || Version 1.1 || .ig =========================================================== .mt0 .mb0 .op .po5 .DF B:FORMAT.LST .RV MX,FIRST,LAST,TITLE,COMPANY,ADDRESS,CITYSTATE,ZIP June 25, 1984 &MX/O& &FIRST/O& &LAST/O& &TITLE/O& &COMPANY/O& &ADDRESS/O& &CITYSTATE/O& &ZIP/O& Dear &MX/O& &LAST/O&: Th fil containin al yo nee t prepar on o thes for letter usin MailMerg wa firs uploade ont th Woodlan Hills C K-NE o Jun 25 198 b Davi Brown A tha tim i wa calle th M-MERGE.LBR. Pleas ad an an AL modifications correction an addition t thi Librar fil an pas i around Chang th nam o th boar wher yo inten t uploa these files an alte th versio number a yo woul tha o publi domai progra sourc file  th for lette templat an FORMAT.LS i th mailin lis template B sur t rea th tex o th for lette template I it I'v suggeste wha thin wil b a amusin wa t kee al involve i thei creatio an updatin informe abou thei curren whereabout an condition B th way don' pu an '.ig' i you .LS file unles yo want a real mess. David G.B. Brown 4216 Ethel Ave., #13 Studio City, CA 91604 MCI Mail or SourceMail AAB398a withou lookin a the screen, you ought to be able to figure out what's going on. However an complaint I'v hear abou WordStar' documentatio wil gladl ech fiv o s time ove concernin th MailMerg documentation. Thes file -- FORMAT.MI an FORMAT.LS -- ar m attemp t hel simplif usin thi progra fo bot m -- and hopefully lot of other people. Jus us m file a "template fo makin you ow for letter an mailin lists FORMAT.MI i Then sen MailMerge lette t everyon i th FORMAT.LS file informin the o you updates Afte makin sur you'v adde you ow nam t th secon lin (th firs print forma letter o th FORMAT.LST stick'e u o you favorit RCP/M Merge your Mind Out, David G.B. Brown .PA .ig .ig * * This, in case you hadn't guessed, .ig is the envelop * * * &MX/O& &FIRST/O& &LAST/O& &TITLE/O& &COMPANY/O& &ADDRESS/O& &CITYSTATE/O& &ZIP/O& .pa  M - M E R G E L I B R A R Y Version 1.1 D O C U M E N T A T I O N (Such as it is...) I thi version th plu sig i remove fro th example It Althoug it existenc neve cause an substantia problems i mad th exampl loo funn whe i wa printe out Th file containe i thi librar ar fo us wit MicroPro' WordSta wor processin progra an it satellite MailMerge If you don't have this stuff, there's no point in reading further. Unlik lo o othe folks foun th WordSta documentatio t b mos complete Th program afte all i self-documentin an unles you'r tryin t ru th progra withou lookin a the screen, you ought to be able to figure out what's going on. However an complaint I'v hear abou WordStar' documentatio wil gladl ech fiv o s time ove concernin th MailMerg documentation. Thes file -- FORMAT.MI an FORMAT.LS -- ar m attemp t hel simplif usin thi progra fo bot m -- and hopefully lot of other people. Jus us m file a "template fo makin you ow for letter an mailin lists FORMAT.MI i READ ME  X>WSPATCH ASM GgWSPATCH COMS THE ENCLOSED PATCH FOR WORDSTAR VERSION 2.26 (BOTH WSPATCH.ASM AND WSPATCH. COM WERE COPIED FROM THE MARCH 1984 EDITION OF THE FOGHORN. THEY HAVE BEEN INSTALLED ON MY SYSTEM AND WORK. HOWEVER, I MUST CAUTION THAT MY SYSTEM IS: OSBORNE BIOS 1.44 DOUBLE DENSITY 52-80-100 SCREEN-PAC OPTION IN ORDER TO INSTALL THE CHANGES I PLACED WSPATCH.COM IN DRIVE A AND A COPY OF WS.COM IN DRIVE B:. I NEXT ENTERED THE COMMAND AT THE >A PROMPT AS FOLLOWS: >A WSPATCH B:WS.COM WSPATCH.COM THEN BOOTED UP, ASKED ME FOR MY CHOICE OF BLINKING RATES (I CHOSE TO ENTER THE NUMBER 5, WSPATCH THEN PROCEEDED TO MODIFY MY VERSION OF WORDSTAR. I AM NOW CREATING THIS DOCUMENT ON THE MODIFIED WORDSTAR, THE CURSOR IS BLINKING AND MY ARROW KEYS FUNCTION IN WORDSTAR MODE. THEY WILL RETURN TO CP/M ARROW KEY MODE WHEN I EXIT WORDSTAR. IT WAS NOT NECESSARY FOR ME TO CRETURN TO WS IF CHAR. READY DCR E JNZ LOOP3 DCR D JNZ LOOP3 ;DECR. TIME AND LOOP UNTIL READY LHLD 0EF5AH ;GET BIOS CURSOR POINTER MOV A,M XRI 80H ;TOGGLE CURSOR (UNDERLINE ON/OFF) MOV M,A JMP TIMSET ;RESTART TIMER ; RETRN2 LHLD 0EF5AH ;CURSOR POINTER MOV A,M ORI 80H ;TURN ON CURSORT BEFORE LEAVING MOV M,A POP H MVI A,06 ;RESTORE "A" CONTENTS RETRN1 CALL 173FH ;WS INST. THAT DIVERSION REPLACED RET ;RETURN TO WORDSTAR ; ;**********ARROW KEY REDIFINITION ROUTINE ; PATCH2 LHLD 0E17FH ;BIOS ARROW KEY DEF'N POINTER MVI M,05H ;^E INX H MVI M,04H ;^D INX H MVI M,18H ;^X INX H MVI M,13H ;^S ; JMP 2D10H ;WS INST THAT DIVERSION REPLACED (ALSO, RETURN TO WS) RET ;ABOVE CHANGED TO RETURN ; ;FOLLOWREATE A DIFFERENT SIZE CP/M SYSTEM. IF YOUR SYSTEM IS SIMILAR TO MINE AND YOU FOLLOW THE EXACT PROCEDURES I DID, THEN YOU SHOULD HAVE A BLINKING WORDSTAR ON YOUR SYSTEM. BOND SHANDS April 26, 1984 P.S. THE WSPTCHDD FILES ON THE FOG BULLETIN BOARD WILL NOT WORK ON MY SYSTEM (EITHER)! I SUSPECT THAT THE AUTHOR HAS USED THE WRONG BIOS CALLS FOR MY VERSION OF THE OSBORNE. GOOD LUCK.;WSPATCH ;LESS SWORDY 12/5/82 ; COPIED BY EMOND FROM MARCH '84 FOG FCB EQU 5CH ;DEFAULT FILE CTRL BLOCK BDOS EQU 0005H ;DBOS JUMP POINT BIOS EQU 0E100H ;LOCATION OF BIOS FOR REV. 1.4X DIVERT1 EQU 1D33H ;DIVERSION FROM WS CONSOLE I/P ROUTINE DIVERT2 EQU 0100H ;DIVERSION FROM WS START-UP ROUTINE ;divert2 will not be used INISUB EQU 02A4H ;INSTEAD USE WS INISUB LOCATION PATCHSP EQU 02E0H ;WORDSTAR FREE PATCH AREA ; ING PATCH RESETS CP/M ARROW KEYS ; PATCH3 LHLD 0E17FH MVI M,0BH ;^K INX H MVI M,0CH ;^L INX H MVI M,0AH ;^J INX H MVI M,08H ;^H RET PATCHND ;END OF BODY OF PATCHES ; ;START OF PATCH INSERTION ROUTINE ; ;****CHECK VALIDITY OF FILENAME START LXI SP,STACK ;LOCAL STACK LDA FCB+1 ;FILENAME GIVEN? CPI 20H JNZ ONEFILE ;YES: OK ; MVI C,9 LXI D,ERR5 ;'NO FILE' MESSAGE TO CONSOLE CALL BDOS JMP EXIT ; ONEFILE LDA FCB+17 ;2 FILENAMES GIVEN? CPI 20H JZ GOODFIL ;NO: OK ; MVI C,9 LXI D,ERR6 ;'TWO FILENAME' MSG TO CONSOLE CALL BDOS JMP EXIT ; GOODFIL MVI C,9 LXI D,MSG1 ;HEADER MESSAGE TO CONSOLE CALL BDOS ;AND REQUEST BLINK RATE ; RETRY1 MVI C,1 CALL BDOS ;INPUT BLINK RATE (1 DIGIT 0 TO 9) CPI 03H ;^ ORG 0100H JMP START ; MSG1 DB 1AH, ' WSPATCH REV. 1.0',0DH,0AH DB 'INSTALLATION PROGRAM FOR WORDSTAR PATCHES:',0DH,0AH DB '-BLINKING CURSOR',0DH,0AH DB '-ARROW KEY RE-DEFINATION',0DH,0AH DB 'FOR OSBORNE CP/M 2.2A-OOF & WORDSTAR 2.26-01D',0DH,0AH,0AH,0AH DB 'ENTER DESIRED BLINK RATE (0 TO 9)',0DH,0AH DB '0 IS VERY FAST, 9 IS VERY SLOW',0DH,0AH DB 0DH,0AH,0AH DB 'BLINKRATE? $' ; MSG2 DB 0DH,0AH,0AH,'**** MODIFICATIONS COMPLETED SUCCESSFULLY ****',0DH,0AH DB '$' ; ;BODY OF PATCHES LOCATED HERE ; ORG PATCHSP PATCHST ;changed by Emond ;**********CURSOR BLINK ROUTINE ; PATCH1 CPI 06H ;IS THIS AN I/P FROM CONSOLE CALL? JNZ RETRN1 ;NO: RETURN TO WS PUSH H TIMSET LXI D,0000H ;BLINK RATE TIMR (FILLED IN BY INSTAL ROUTINE) LOOP3 PUSH D CALL BIOS+6 ;BIOS CALL TO GET CONS STATUS POP D ORA A JNZ RETRN2 ;C ? JZ EXIT ;YES: ABORT CPI 30H ;LESS THAN ASCII ZERO? JP CHECK1 ;NO: OK ; CHERROR MVI C,9 LXI D,ERR1 ;VALUE ERROR MSG TO CONSOLE CALL BDOS JMP RETRY1 ; CHECK1 CPI 3AH ;GRTR THAN ASCII 9? JP CHERROR ;YES: ERROR SUI 30H ;CONVERT TO BCD INR A ;+1 STA TIMSET+2 ;IMBED VALUE IN PATCH1 ; MVI C,0DH ;RESET DISK DRIVES CALL BDOS ; LXI D,FCB MVI C,0FH ;TRY TO OPEN WS FILE CALL BDOS INR A ;FF BECOMES 0 = ERROR JNZ FILEOK ;IF NO ERROR ; NOFILE MVI C,9 LXI D,ERR2 ;'FILE NOT FOUND' MSG TO CONSOLE CALL BDOS JMP EXIT ; ;****READ WORDSTAR INTO CORE FILEOK LXI H,1000H ;READ BUFFER BASED ADRS LOOP1 SHLD DMAADRS ;SAVE IT ; MVI A,H CPI 0B0H ;READ BUFFER OVERFLOW (OVER B000H) ; ? JN LXI B,PATCHND-PATCHST ;BYTE COUNT ;BYTE COUNT ABOVE MUST BE < 124 DECIMAL (07CH) ; DB 0EDH,0B0H ;Z80 "LDIR' BLOCK MOVE INST ;****PREPARE TO WRITE WS BACK TO DISK LXI H,0100 ;RESET FCB SHLD FCB+14 LXI H,0000 SHLD FCB+12 SHLD FCB+32 SHLD FCB+34 ; MVI C,0FH LXI D,FCB ;OPEN WS FILE CALL BDOS INR A ;FF BECOMES 0 = ERROR JZ NOFILE ; LXI H,1000H ;WRITE BUFFER ST ADRS SHLD WRTADRS XCHG ; LOOP2 MVI C,1AH ;CALL TO SET DMA ADRS CALL BDOS ; MVI C,15H LXI D,FCB ;WRITE ONE RECORD TO DISK CALL BDOS ; LHLD WRTADRS LXI D,128 DAD D ;INC DMA ADR BY 128 BYTES SHLD WRTADRS XCHG LHLD DMAADRS ;IF WRTADRS = END TO READ BFR THEN ALL DONE MOV A,L CMP E JNZ LOOP2 ;IF NOT EQUAL: CONTINUE MOV A,H Z NOFLOW ;NO: OK ; MVI C,9 LXI D,ERR3 ;'OVERFLOW ERROR' MSG TO CONS CALL BDOS JMP EXIT ; NOFLOW XCHG MVI C,1AH ;CALL TO ST DMA ADRS CALL BDOS ; MVI C,14H LXI D,FCB ;READ A RECORD INTO READ BUFFER CALL BDOS ; ORA A ;END OF FILE? JNZ INSERT ;YES: INSERT PATCHES ; LHLD DMAADRS LXI D,128 DAD D ;INC DMA ADR BY 128 BYTES JMP LOOP1 ;READ NEXT RECORD ; ;****INSERT DIVERSION FOR PATCH1(BLINK) INSERT LXI D,0F00H ;MOD BIAS (100H=1000H) LXI H,DIVERT1 ;DIVERSION FRM WS TO PATCH1 DAD D ;+BIAS DCX H ;TEST FOR CORRECT VERSION OF WORDSTAR MOV A,M ;CHECK INST BEFORE DIVERSION LOCATION CPI 00 JZ CHECK2 ;SAME VERSION: OK ; VERSERR MVI C,9 LXI D,ERR4 ;VERSION ERROR MSG TO CONS CALL BDOS JMP EXIT ; CH CMP D JNZ LOOP2 ;IF NOT EQUAL: CONTINUE ; MVI C,10H LXI D,FCB ;CLOSE FILE CALL BDOS ; MVI C,9 LXI D,MSG2 ;TERMINATION MSG TO CONS CALL BDOS ; EXIT JMP 0000 ;CP/M WARM START ENTRY ; ;****STORAGE AND MESSAGES ; DMAADRS DW 0 ;READ BFR POINTER WRTADRS DW 0 ;WRITE BRR POINTER ; ERR1 DB 08H,' WRONG!',8,8,8,8,8,8,8,8,'$' ERR2 DB 0DH,0AH,0AH,'ERROR: FILE NOT FOUND, RESTART AND TRY AGAIN!' DB 0DH,0AH,'$' ERR3 DB 0DH,0AH,0AH,'ERROR: READ BUFFER OVERFLOW, BAD SOURCE FILE?' DB 0DH,0AH,'$' ERR4 DB 0DH,0AH,0AH,'ERROR: WORDSTAR FILE CORRUPT OR WRONG VERSION' DB 0DH,0AH,'FROM VERSION EXPECTED BY PATCH (SEE ABOVE)',0DH,0AH,'$' ERR5 DB 1AH,'WSPATCH REV 1.0',0DH,0AH DB 'ERROR: WORDSTAR FILENAME.EXT AND SOURCE DRIVE MUST',0DH,0AH DB 'BE SPECIFIED IN COMMAND LINE. -- EG:',0DH,0AH DB ' ',1BH,6CH,'WSPATCH B:WS.COM',1BH,6DH,'--TRY AGAIN!'ECK2 DCX H MOV A,M CPI 01 ;CHECK ANOTHER BYTE TO BE SURE JNZ VERSERR ;IF ERROR ; INX H INX H INX H LXI B,PATCH1 ;PATCH1 ST ADRS MOV M,C ;INSERT INTO WS INX H MOV M,B ; ;****INSERT DIVERSION TO PATCH2 ; LXI H,DIVERT2 ;ADRS OF DIVERSION TO PATCH2 LXI H,INISUB ;PATCH2 DIVERSION CHANGED TO INISUB DAD D ;+BIAS MVI M,0C3H ;STORE JMP AT INISUB INX H LXI B,PATCH2 ;PATCH2 ST ADRS MOV M,C ;INSERT INTO WS INX H MOV M,B INX H MVI M,0C3H ;STORE JMP TO UNISUB=INISUB+3 INX H LXI B,PATCH3 ;PATCH3 ST ADRS MOV M,C ;INSERT INTO WS INX H MOV M,B ; ;****INSERT BODY OF PATCHES INTO WS FREE PATCH AREA LXI H,PATCHSP ;DESTINATION ADRS DAD D ;+BIAS XCHG LXI H,PATCHSP ;SOURCE ADRS ,0DH,0AH DB '$' ERR6 DB 1AH,'WSPATCH REV 1.0',0DH,0AH DB 'ERROR: TWO FILENAMES GIVEN IN COMMAND LINE, SOURCE',0DH,0AH DB 'FILE MUST BE SAME AS DESTINATION FILE. --TRY AGAIN!',0DH,0AH,'$' ; ;STACK AREA DS 64 STACK END ;EOF 3/9/84 L=307 C=89980 WSPATCH REV. 1.0 INSTALLATION PROGRAM FOR WORDSTAR PATCHES: -BLINKING CURSOR -ARROW KEY RE-DEFINATION FOR OSBORNE CP/M 2.2A-OOF & WORDSTAR 2.26-01D ENTER DESIRED BLINK RATE (0 TO 9) 0 IS VERY FAST, 9 IS VERY SLOW BLINKRATE? $ **** MODIFICATIONS COMPLETED SUCCESSFULLY **** $OGRAM FOR WORDSTAR PATCHES: -BLINKING CURSOR -ARROW KEY RE-DEFINATION FOR OSBORNE CP/M 2.2A-OOF & WORDSTAR 2.26-01D ENTER DESIRED BLINK RATE (0 TO 9) 0 IS VERY FAST, 9 IS VERY SLOѷ*Z~w*Z~w>?*6#6#6#6*6 #6 #6 #61:] F Z}:m Y } }0{ a:p'ʒ;>E.: r"Xf %p o4('>״F2@D!q6EPa'!$X&nM01HQa5HLDMP1/ؾR,  NPl8"*q5(eX`DY"H\ Ad-S$$$0+9v8,9oip;>*"uuD8$$[ R":]gv)3,A2 T Y@Pe[t}L$MDB+Fl.H-ŁQ$q6M,cnQaɑGpQ8wh'Oo~HXT'U!o w I׿9&*,]6Qk-j+"-91t<ۿ:T "+["\ڊy7?k`& DpdF$8v8,9IMC+[g,07, 0,9}A "6'fΰteDɄG}` ,0OHQdl^+ hR_ҿn~By^`s}k`& Dq4AW4mmr l@D G%gF\gX`>hj8k9H-G&W9 gd#?اy~>*ĪѓRJ]I1I*|9n A*c, 0,q""<;$!o)6'fΖY`%6AtE6C2Эb{sSL0<""q6E@e-OpN'7qº }\*å!3+~ }+~###q#p!6#q#p#6#!q#p!!P!d"j!"h"|"~\<ʗ!"\*"*}H|H\  WRONG!$ ERROR: FILE NOT FOUND, RESTART AND TRY AGAIN! $ ERROR: READ BUFFER OVERFLOW, BAD SOURCE FILE? $ ERROR: WORDSTAR FILE CORRUPT OR WRONG VERSION FROM VERSION EXPECTED BY PATCH (SEE ABOVE) $WSPATCH REV 1.0 ERROR: WORDSTAR FILENAME.EXT AND SOURCE DRIVE MUST BE SPECIFIED IN COMMAND LINE. -- EG: lWSPATCH B:WS.COMm--TRY AGAIN! $WSPATCH REV 1.0 ERROR: TWO FILENAMES GIVEN IN COMMAND LINE, SOURCE FILE MUST BE SAME AS DESTINATION FILE. --TRY AGAIN! $Ҁ6:ׅ W <1瞽a`@x|G@x| t@b߻HBgUoHs]Hs [+މ")s;Q$X`Ҁ~f:]9ov+NoR,0~~:`$ 9.:6ooȑ[,<>C_` qXXJ %cMxGʵᖧ Y@"}JHObO 6r= Ʉ͛93ΦɄ#A,r%'h8j܂d"<"ioh K5r/v l6XwL8GDXRbl{+!C+!U.C\lK/pCϒ oGڭЅiRBpCurg8},|i 7xB=zO_'Ş{bO?/}|sj\w=}[_w=}[_w=}[_w=}[_w=}[_w=}[?I|gh' N~5"⟡wGgIT=Ǥ/̒*PF=twTVڭTB+t <%ƏgI T)OUFv+L+t <ޥ YD|Dvp_2[gX`lgIJ;-][u}Alnb%]DqpX /ggRʵ0ADppAL\лXҳ1,0΀~3+!=c_bgOp.?3[(#zlމ b메x3Xz*/6JH]Bb3z~h|'V*I ~v+5}EYvWSPUZZLE.BAS  !"#$%&'()*+,-./0123456789:;<=n0t}|1>?@ABCDEFGHIJKLMNO a vmPQRSTUVWXYZ[\]^_`abcdefz /~ighijklmnopqrstuvwxyz{|}~o,xG{yurpE5wsqkjge[YRPIA92* fdc_^WVUTSQONMJFCB>=;43.-+)'&%$!?i 5}x 9g 2C%g[ 9gK"8["cF;iwN 9gV$ęH#9 }[h'Wh HP[wl"AlvnÒGgIvHQ[wl$N!%HqQ*KO֨}-( b2R׺rJ%>OwnT2Я43JB%I% 铔~lA}l lQv1[#0?Vb%t.=cX й@>;/ln{vfk_`Ƚ)ECV0ܛX _я` cob%dhb%7ehbK ch/ō0z( Tln0o8xq t54ATaj}L$H*a<u42A`9impd2aGk,}-uOF&.LrW1zœlH$㨭w>)Y`%~& wp7E:IOYл.g#WXҳ1,0~ӈk>Zizlآ }-LJ\z6a&7FFk_`JE/(+!e{>%t!'\^(# VJ(+!u IVr[)! ~v+e7.dAMr[Şer$p)BF_0`v鰾ZG->|(u?CHOOȠ[D>]S,*"zВRAY[32q] Աct>\0QCMp˓}3xWtJ2;gO "`ǐMsy"Ȝ;$gcSǐ92N]x0h.kc44cf͘/EA sUokh|5BjI{7!ϛ&}<9BABtE9$PX&+2 Ay34}<*Q(sD[AL 04sFլ?˯ bi&-W y fWMc |˕B/|zCbaQ0r#̡mE r@z )H#Ri#!Ќ r(si#Asw1$3 "G063L+x}S s \.9=!Dȵ?? C͘#gi~0 Lsܴ!Dq͘?1]svWUMPUS.BAS  !"#$%&'()*+n,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_pt0o1`abcdefghijklmnopqrstuvwxyz{|}~}vq|zry, ~G) wiB1H1 [W(jboƐX!B5BAs"! g]:!p!hCFk! B\9XHsnm a afx3jV]{CbY=hqh|hk#s~FhG~ Cr4;5)Ԭ֝Ɛs([ SK;1PŒ$}nCP͹A_X7Q/w ѡ}ƪu p 3h/f 1m *q> P)ױMS&R֓ڴ`;CfQG%G%GcQ<]j1dska9?wjQ(9OI2@s 6m(\A0;6CNqEIyvqTh< 珣E| Y091r٦>ǐy >\VɲJmt$YV6`~=4~}X͐1r0^Đ*dLiˑeWΜ@EWL .D.ҙOa:M!q8` {$Jg:~"+sQ8~ɱ*,fN|Y'Ǫȍ0Z-۴+'cHЌ*mT'r;hqr{u<ց[0+'#_8rh_bH͘e}^;<$Gk`#D 7&{# &QzFb-4ZLh- @4GB0!ЌũAkdkQkcU15蹢_ۇJu7 Ful=xm*Q`__GA/PcEiYF(YetZO/kQzFQvtZ J]e8X>rdϝ͹]FU:5bm ͐7+tzklnms?M$J({.߬SB2mR:`lߚ[Q=)KObʹe>u?Q4V.Gt9> y_ 9lDBt*ڌ6ZVN*ױMnkRc;[Pi+$stH]t-zZ?5sQtkѹh85c%:Yy=ը?]WFt5:]Ƶh-:5\GtXsQ5Eq,Z;R85.W5FkQRt-:5FQ5Ekƹq)j a|D:yz^G* 1'';ߝ֓:Tt<)>w$yNW>FcUX4hm P%UѨEkSѹSǪy TԥJ M"?=Л'iZ:qei+)0لAO[I٦-uE7vƪhYAi45SuVH6mfBߴr8JQg*qo/u&*W0RC/ڷu&`VRi%$Jelsz̊qXh=a-[i=ۯuƪ΃9f'x6 ' BSr6YX3h/fN(w :cU4TȘgt.3u Ju+3V en;IL]>Iw㝃(ѡ;cU+(=2Eu&.$J;GgݳD}Bg 7CAhPE,S|QҔW8 ic,wj# 9G9BQ92N-Y.DEIoNoC\:W 8=yl ϡiQ0K ] $7q+6[`+'9KғD铄aVY(=.ba0`,KLݐ>[اqv9XsmY@شit-[~fyZI枬Mbo6=`*6҄fsa"Ȝ;(枪uzync=1W[.lZO0һk[VcH", ([t6Vr޼X>rdϝfNV7لf\@LWWmz$)ԦG3zu6=`o(=JwVcH**"s~f@ܢooe]YZ=D?~dj u94s"8=v,T \s&i}gS'`鿶?65WSSD)˩}X&vfA u9TjzU$JGqTl٦(;^ 1)L[\gvJ(=:EQ7VE3 L#4sF}kGlZOʖ޷ƪȜ;E?عԛ.lz$$Jh}mr4\-b9 s~ԢiƪY#s~Ǝ]F*}~峘DuVzcU䁠ý X¦ > ] &QP^ YE0 0mn-y $,P]YgV;DXF(W>ԛ.lzKbo6=`{z1ɫUr1mgD3\g!׼Xfs>XϖoЯ<;ѓ+k+wޕ~' 'ƒio <x Ƿh뮹{c'wCDt U< Z6([z|ä~uAd\w^[ȭtx8=54N{K Ms|<>Ehf`\iYF(YetZO/kQzFQvtZ J]e8X>rdϝ͹]FU:5bm ͐7+tzklnms?M$J({.߬%7r2,$w'5)GepEya٢i,?C]ΏQ#zC~Fk$a!KNetvzdb)]ss!}(O3@Wwmc%9K Uچ!ߣ|ֱԿ dW~@}a~?&!Ii 8n0H 9MA?˯id?H+XKqI'ӣP㢗c|HKQ"+'-,i۲),/*fbi47|%A_+eWP*汄;蛥OL#_,aYeOOKqKK16 јӛ(QD~{(lap˒j^~)>D㞙^ZO`%.L$0鄂>O3g J\ T8s>ۼN"gͱ:6* 9ҥwy>=]E(҂IioO#~Z~;$N!iξ8M^5= ;SkO#۽MW d'h}`LlQ)Did//cMH:zel ezEx(@cmڎ5 Xddp ˆ'sgWhL+ɨ--ߝD[8{|mt^%wj(xN#Ҵi^='wP"WJ3"{=OJk) M^@c9㸓@72-a"g|ڱ{VhL};ib_<]Xddp~G0Sp4~jrnGXC0p # 4F0=ip4}~jVb#d2riWhL#)K\3黾; 6+'/V1\ sNSP8%&ϱ0-\[Dpr,)CM/7X 'a$Ld i"a2q&q]p?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgpo1}t0|{zhijklmnopqrstuvwxyz{|}~qvryW / w ueM9,xiUC)][YQ%~skjgca_SIG?=-' mfONKEA#\@;43+!lh^VTPH>87652*`RF<:.($  ;`Ƚ‘_wxAWh?G>/DDLL$`Iil@r\$lVr\rG75Cba"a 8+IYIC>\ 1QI 5 ǵİe(`II9#5= И(H†vЎaP29MPZ&r\HWhd|.D$+<  N( M$,XR H 1TcCX=@cl*&q]0j`HǛ\@^9@#@ @iss&"a 8lLJHWh:cjGX)V#4zz4 ۯMP0޵Ǻv,Tހ/lz?vWV*4x+hgU,Uk>vqM3tp&ڊ+ gxxxgx^|_w S<ìZv^M3&ڊFYsyxy2xWyp #\gaV-VX)VVVjUU܂jc5Ja5jgZXMgjU{'FX9b}i )q>Vuz]7O#{ =qWk0=uסQn!1hĂ9MA\AXpdڒ2}z!@Gayly>y/7_\AXo8;s)..u3aY::ѯ3uG7QwmpyzoE Bbs`U, +(X}xgay.݃(уDn?5xyiQP#} 50 #D A/,.^_{'<7&;O&{}apbKأ?1Z~~ku53@v|>vd @kkߝkבUD]@/j~k(>uR]\PHK1pi;i!-qqzZHKq doC'>@ ˒(wm)<Z/P}lΝ}~%v[}dyf54p,KVhdu):S/zi5w1R%'[3+(bKأ?:yhfvԹb!-@&J9Ό&q]'-H,Yc3NhNl84s ٻg8Ǿ?@mΐ{ff5 MJ&=:sهtfFQ0E"WO{:26}|~؏gL9M8CC&˒{Hӻ6+SW{|0m{af5~e |wR4Nf{bƩ i)=]xޜ;Ͼv&v"(240@% }@űỰ g4r䝽9]xi5oG.h䢣p,KV0) 29oO!{ Mهʣl Tذdb|W;Ϣ\*>K/g(}e/=KO\OϾ/=`6=VK0v .PIBbcR4drTq+Sʇ鯏_,)`;+^&uSȾL[ZX.ocN(z9r]%`${[_^Tqvqd7s=bbg;bl U/ J*GKQE E"W߃'&l _a^Z=l ;4K/Fy%>`y^K16{Ͻ@Ҡ mo{56T;Z/Թ{gO!2Y̎"+'-DΚc,4ϥؿ{p%zpS#/ >  7єy/aZFX8+IYIC>\ 1QI 5 ǵİe(`II9#5= И(H†vЎul:{nhKqѣOE $a!i\{vv'bl Yz9o6(IX8$a!j(jBpPIBb;?{YC>5^26,͎|C34ҽ]x16,t}_LaCBOx| 9ig{{=LWώcӛqvvx<Kf2@9ZN B1]䢣-*=O'-4drT:tjL/_=,}fӿ(j-<39MAv{t6%-z^ƶV[h@uXs!mՆc_{+}m%uK:-W\Mw&vS7.vn d?:K{;8W8g?6|u9@-[FQ:#rN$:t_ny2VUVVYeX c~ml qV#YY L38bjU.6Ho8vo(jm,ߝ-MouglmUb 'UNwWX‘OuEEuv~rknvδX qxxh'[)q)8+uVU^~AwPgbabX ʰc5jaVX g.pw )V ED THE " 3026 MWYLBUR DQCWYLBUR BQSAILED TO TOUCH DOWN INSIDE THE vWYLBUR.DOCM   "!$#%'&()+*-,./0132457689:o;=<>?@ABCDFEIKHLJGY/Op a٩Xwc?˳| ;qh8e/9/uǭ 2{#F !25 8Vk :5]SA0C|1QC"p z*wx;s >ӮW-f"Zeskp aw yv  U,XuG^էw!tCُ5=\g9 >ӮSۢEN0jߛQW6CYNi/', 2m,GWrnx5/If3MJ@n\v*^F=tG=Nr+LH$7ŧ5m,K{QحXsQJUg0! i(9˩!_6V z*U!7kqմK?˳| 9LHZN@BOerEj8j(%_F=.+L,_BDE!U<UIQ!%6iGWܵQm-˱v5^a"O!SbWGԹ\ ÃQ%1ӌ(]#zU>0mWVEB[_e-Mpz| nռ5^a"O!SAHnW 6[T'-a yy-x9Z/VEB!GN=8ily5X?\ԫBeBD8L̾7E !W,sỤ蘥?F)᪘!l};S;Ӝw3wưw3wi<,~!-Mpz,H疜3=_;Aw4#Q?F)Ȗ8)d-gC[%G)d0<k` ÃUP }o׋"2}Kw=-SKbn?{>m,碲zt W',Ps*dN24 !/˂V1E홂!_mCknv^g5YN=nV,MkcIn+Lv9Z/hajn{r5ie].r ۽zjnPXrRɣnI|m,(jp z*]֋N0,/碖y|Ծ7ӣSTvTO7ܮۮGKæg!04$7vXztŹE ƨvmF݆d9a.G V]~8zZ$VZ GP"MC0y/˂V1E홂QCΗܲyi\{jXshcIn=S?jX{,5Y~d}?&6g 9֭X;?:k]rϴe۳|5{\ Q;?z]!{x#5Mfy_ԟ7 UQC./X_N0 Vg5"| ݱ!`F7^m ]sQ ةhQe.+L'<ZQ{HdXkbmQe.Gtb<_F=SW/a0! 14M/-cI&9@:pTYWEQC5ٻ1 ݱ梦+z>}V vE"z]֋wXnvQ_cR%t PQKTa0! )ɭN0iwǚ7Ǐ}{xG fA37jT?z|G}Ź=R<&vÍ nL8\_j|ߣS6X֊FZ+ۇ#G 68ܨԫ  WYSE OBJkWYSE DOCmjWYSEIN OBJsWYSEIN DTA(#WYSEIN MSGKWYSE PAS\?ԮWYSE1 MODͫCopyright (C) 1984 BORLAND IncATelevideo 912/920/92P)(= ERT()~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 [>i?5}~ GN0/e,w>_|?\-=JG7^m'uvp8Tܘz52˗]K4CS`|!$7Մ5sqv*F]>,kMuaxWc?՛<=Yx؏ZAA3Be.5Z˺B>c_IHn /Y|(jp z*]֋N0v WYLBUR.BASR  "!#%$&('*)+,-./012345768:9<;>=?@oACBEDFGHJIKLMPNQOU#UU)0*جeLߖ׊|YVɑM>Lbax0¸*Je22mv+^Bʃ{l?> 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ͬ ͬ} 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###6y|}&#9N8w!DB9+O#>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   #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ͼ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˸ͦ88Ms #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>>> S&!YNE#$!*s*b:$!*s*b*n&*&Q!Qa! a}oEʷ!! !ͽ! !ͽR͐bŔPress b!8! b* &! NEʞ$*!͛E)%*!R"Ŕ b!*+)))*+n&Q!!kE&%Ŕ b=&*!N*!͛}oE=&*!R"*!͇E{%!*!Î%!6*! R!!5z%"R! b!*+)))*+n&Q!!kE%R! b*#Ù%!"Ŕ b!*+)))*+n&Q!!kE=&Ŕ b*!R"*!R"*!"!*+)))*+!s*!NE\&!*+)))*+* &s!*+)))*+n&Q!!kE 'R!^!*+)))*+n&!@b-'!*+)))*+n&Rbc!!͐Ŕ/TAB = newline DEL = delete͐bͩ!"*!"*!͇E'!*!Ŕ func key *!́: b(!(*! RŔ func key S*!Rѷ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!͍!)6aͲB5""!Ͳ!}2R!́: b!"*!"!8! b* &RJ($]( RZ(M&](͔&*!NE(*! NEʃ'R͐bc!W!! !͚!*&Eʿ(! [!b! -bc!R!! !͚!*&E(! 8!ͳb! -b!! 5zʫ)"R!!zb*!͇ED)R*!?bV)R*!Ob!!5zʓ)"!*+)))*+n&Rb*#a)R!͐b*#)c!! 5z*"*!͇E *!*!Ŕ func key *!́: bI*!(*! RŔ func key S*!R!́: b!!5z*"!*+)))*+n&Q!!kEʹ*R!^!*+)))*+n&!@b*!*+)))*+n&Rb*#T**#ú)R͐b"""!"~**5zʞ,"*!R!! !"|*!!!t*!!!͇}oEʌ+*|!"|*~*|ͯEʺ+![! b*~!"~Ì+!!5zʕ,"**+)))*+n&Q!!kE9,![! }2! !ͽ! !!5*Ͳ!:e.* |!NEb A:* *Ͳ!.e.* |!NEʘ * .KEY*Ͳ** =*5!N}2*&}oEC!c!! ŔCannot open input file * !q͐b!Q}2!! Ŕpress b!8!bJ!!}2*&*&Q!Qa! a}oE *&}2! !ͽ! !ͽ*&"""}2!*s! !ͽ*&!RNE"Ŕ!Enter name of disk file to read: b0"Ŕ"Enter name of disk file to write: b*+._b* \E]"!Q}2:$! }2!:e.* |!NEʘ"A:* *Ͳ!.e.* |!NE"* .KEY*Ͳ** =*5!N}2*&RRZ#*&}oEO#! !ͽŔCannot open input file * !q͐bW#!*s:$WR:$*&E&$! !ͽŔFile * !q́ exists, overwrite (Y/N/Quit)? b!8!b*&(}2*&Q!Ya!Na!Qa! aEʹ#*!^**+)))*+n&!@b*~!"~Ì,**+)))*+n&!aEʌ,![**+)))*+n&b*~!"~*#+*#+![͐b!R!i! !͚!*&EO-! 8!ͳb! -b![!͐b!!!*!!!*![͐b!!! *!! !*![! ! bc͐!!Ŕ (c) 1984 J.S. Ulrickbͩ!!ŔFunction Key Setup for Wyse 50b!!Ŕ+___________________________________________b!!Ŕ+C Create a new function key definition fileb!! Ŕ)I Install an existing key definition fileb!! Ŕ)D Display an existing key definition fileb!!Ŕ'P Print an existing key definition fileb!!ŔH Helpb!!Ŕ+___________________________________________b!!Ŕ(C/I/D/P/H/Quit)? b!-!!8! b* &(}2 * &Q!Ca!Ia!Da!Pa!Ha!Qa! aEs/cR͐bŔH > > > > > > Function Key Se MS-DOS, PC-DOS, CP/M 86 The source code for wyse.com is written in Turbo Pascal and is provided as: wyse.pas and wyse1.mod. These files may be compiled to PC-DOS, MS-DOS, and CP/M 86 object code using the appropriate Turbo Pascal compiler. ͫCopyright (C) 1984 BORLAND IncA Visual 200912/920/92PInitExitY,000) vHomeLnsMelxOL3igh4ow~7#~=% o&ͦoͦܐԩͣ}!!"8~#(}:$= +*!Z!*B!!:(=2!Z: <2!!!:O::O:!*B! !45(!.+/ 0y0( d!kZ!{Z͈͈o&  :(y ͠|( tup for Wyse 50 Terminal < < < < < <͐bR͐bR͐bŔJ 1) Enter WYSE at the operating system prompt to install͐bŔ? an existing function key definition file (filespec).͐bR͐bŔ> 2) Enter WYSE to display the previous menu of options.͐b͐ŔJ Print option will print the function key definitions on an͐bŔJ Epson printer in compressed print (14.5 cpi). The printed def-͐bŔJ initions may easily be cut out with an x-acto knife and placed͐bŔ> in the keyboard depression above the function keys.͐bR͐bŔJ This product may not be sold without permission. It may be copied͐bŔJ freely and not for profit. You are invited to compensate the author͐bŔJ of this program by registering. Registered users will be notified͐bŔJ of revisions, upgrades, and additional software. To register, send͐bŔ $20 (su*"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!bggested) to:͐bŔ* Jim Ulrick͐bŔ5 2100 Los Angeles Ave.͐bŔ2 Berkeley, CA 94707͐bR͐bŔ (c) 1984 J.S. UlrickbͩŔ. Press b!8! b! m!͛Eʌ5! !! Eʉ5! 8!ͳb! -b(&6P-* &CR©5.'}$͇( 6IR5(*&E5(ͬ)}$ 6DR5(*&E5ͬ)}$ 6PR5ͫ, 6HR 6/* &Q!Qa! aEʌ5IRI(*&Est(ͬ)}$ñ5DRD(*&Estͬ)}$5PRPͫ,5H WYSE.DOC Wyse.com is a Z80 only program to setup the function keys on a Wyse 50 terminal. Function key definitions may be written to disk files, read from disk files, displayed on the terminal, and printed on an Epson printer. The program may be installed for various terminal emulations using the programs wysein.com/dta/msg. "!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$![ (̈́( #:~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[ ( ٚ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!\ ( ( !][ ( ( ((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 #-= 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 !\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-{#*w!o"W'*y*w͇E'*y*waEʾ'*y*w͐$*y!"y*w!R"w*y*w͛E&*w*}R*{*yRͯEX(*y*{ͯEO(*!"!*+)*ys#r!*+)*{s#r*w"{â(*}*wͯEʜ(*!"!*+)*}s#r!*+)*ws#r*y"}*}*{tEʢ&_&*!N*!t}oEh)*!NE#)!; $$$SOWRK.$$$=!;yb!}2:!!+"!!+"!ڟ!)^#V!ԟ!)^#V+"!ԟ!)!ԟ!)^#V!s#r*!͛Eʁ)!"Ç)*"!ڟ*)^#V**"*** *!"*!"**NE)!"*!"*k*!R*}/o|/g#{#*k!"*** *k!"k*k*t}2""""""!͡!("!)"!4*"!"!*ͼ *ͼ !͡!! !! ͥE +!@! !͡!! ͧ!"*!͛EW+!*!"*!"**"*!͇Etime% error ͒%, PC=[R"͍% Program aborted*1!͍!0[ͲZ WYSEIN.MSG WYSEIN.DTAWYSE.COMCOM"|*|"z*z!" !  !t͡!t"r*r"p!*p m5zʲ "n*p*n*p*nn&(s*n#Ä P!Ͳ5!NE R͐Ŕ*** FATAL ERROR: ! !q͐""**ͯE%!*"+!*"*""**͛ET!*"Z!*"*" ", * ͥEʖ!** ͥ!}2Ý!!}2*&" * m!͛* !n&! N}oE!* !!ͽë!* * mn&! NE'"* !* !n&+s!D*"6"8!;*6*b!;*8*gb"2"4!;*2*b!;*4*kb"/*/*"-*-!ԟ!)^#VN*-!ԟ!)^#VN}o*-!ԟ!)^#VN}o}21*1&")"+*+*"'!}2&!ԟ*&&)^#V*'aEM#*&&!}2&#!ڟ*&&)^#V*+***)s#r" ʌ+!",!ڟ!)*^!Eʩ+!"!ڟ!)*^!E+*!"!ڟ!)*^!E+*!"!s*^!E ,*!"!u*^!E',*!"*!aE@,!",!"!}2:!"!"!"!ԟ!)!s#r!ԟ!)!s#r!ԟ!)!s#r*\ !џ!!s!џ!!s!џ!!s&!"k*\ *:&E,!;\b*!tE-!u*:*!R"*!tED-!s*:*!R"*!tEt-!ڟ!)*:*!R"*!tEʤ-!ڟ!)*:*!R"*!tE-!ڟ!)*:*!R"**\ *\ *\ *&}2*&"*"*0!s#r*2!s}2""*"**0^#VaEL/*2n&Eʡ.**0^#Vb**3!gb*2!s**U!R͛E/*&E.Seek read errorͳ /**U͛E /Seek write errorͳ **b*Ӑ^#VR!! ! !q! b*x&}oEc?!z͑:*ޗ&Eʎ>c?!z*Ӑ!y!xV<*y&*"&}oEʿ>!}2x`?*y&E?*͐*Ӑs#r*Ӑ^#V*ѐ*ϐ!!}2x?*ѐ*ϐ;`?*x&}oE2?! R!q!E !qb`?*Ӑ^#V*ѐ*ϐ!<}oE`?*ѐ*ϐ;!}2xl>"p"r"t"v*vn&"l!8 mm2s*A*8&}oE63*8&}2Ý*!*! mR!*s#r*!! mR!!*s#r*Ý&}24*4&! RBj4  RBj4  RBj4 RBҐ4Ctrl-*4&!@e.!Ͳ85  R®4!Ͳ85 R4!Ͳ85R4!Ͳ85 R 5!Ͳ85R'5!Ͳ85*4&e.!Ͳ*4&!͛Ee5! (+128)!Ͳ! !5Ͳ!5 8* m*tEʭ5!}2R!bô5!}2*&6! !!͞*!N*!t}o*!͇}o}2*&*&e.!Ͳ*&Rb!8!b! *&e.!Ͳ*&Q! a! a! m!N}oͽ5}o}oE6*&Q! a! aE6!!!!n&+sͽ5E7* *e.*Ͳ*&! aE7*&R! b!8!bn7R!b! m!Ez_7"R!! !b*+57!8!b́5*&Q!$a!l*t*r*p>*l*vs"j!*j5z?"fR!_b*f#ð?!*j5z?"fR!b*f#?"b"d*"&E@!*d m5zS@" R*d* n&4!q! b* #@*d m!͛E@Ŕ (b!*d m5zʸ@" R*d* n&!! b* #Ç@R!́) bR! ! !q! b!*b~5}2 ! \*"&}o}oE(A! *dͲ[A* &!-NE[A*dͲ!_ R!q͐b""" *"&EʚA* n&!NEʓA!}2ÚA!}2!=*&}oEA!* s*Ͳ<ÄC*"&EA* n&!NEA!}2A!}2!=!}2*"&E^B*&* n&!a}oE6B!}2^B*&}o* n&!N}oE^B!}2*&EsB!* s{B!* s* n&!NEB*&EʤB*Ͳ! R!q! b**?ÄC*&EB*Ͳ! R!q! b*"&* o}oE>C* R!q! ! !q! b*+͝?!`͑:R͐b!` o*"&}o}oEʄC!` *!0!9k}o}oE6*&! aE8R*&4!q! b* *&e.*Ͳ́5E7! }28!8!bÜ7""*Ͳ!}2!8!b*&(Q!-a!A!ZkEi8*&(}2ß8*&(Q!0!9k!$aEʓ8ͺ5Ö8͜7R͐b*&ü9*+"*!NE8!"R!*b!$k !k !$ ! ͽ}2 * b* A}oEf9* M! !NE59R!<b* 8!$ͳb* M!R*aEc9-8* b-}oEʻ9* M! !NEʦ9R!>b-* [!$bs9"P!Ͳ" ! R!q! b!", !ͼ !!8!8!g9!$!("!aEʄ:R͐bŔ9*** WARNING: Unable to sort Terminal names - Press RETURN͐b+_bR͐bÀQ"*!!s!8!b*&! aE;*&Q! !~kE+;*&Rb*!*!n&#s**!n&*&s;*&!N*&!N}o* m!͛}oEʚ;R!! !b* Ͳ"^*^"\*\ \EʽC*\6D*\Fn&EC!e.!XͲC000!*\^#V5!XͲ*\6*\ !X *\ !X *\ *\ m!X m"V*V*\ m!X m"T*\n&EʮD*\G*Vs*\H*TsD*\G*Ts*\H*Vs"R*R!!*R"P*P}!s*P~!s*PF!s!ڕ! <b!ڕ5!aEuE6File Containing messages for this program is not foundͳ !ڕ!e!_H1!RͰ*@"8O*B+">*B*6+*@R"8*8+*:#"8!*8+5znQ"2!*:+5z\Q"0*6+*@*0*8*2"%*%*>͇ESQR*%#!́) b*6*4a*>*%R!t}oEP!**%b!*8!ͳb! !Ͳ Q*>*%RRP!ߎ !Ͳ QR Q! !Ͳ! R!qb*0*:+ͯESQR!! mR!qb*0#$PR͐b*2#PͦM}oEʬO*F&"!P!ͲP!;Ͳ!}2!*!; =!*5!aEQ!*bE!}2ߗ!}2ޗ!*U!N}2ܗ!"ڗ*ܗ&ER<R!Ͱ<^MͣM}oE3R!}2ÆV!}2"*ܗ&ETR!"%!<SR͐b*ޗ&EʐR!}2ÆV*%+"%*%!*UN}2ܗ*%!*U#NES*ޗ&ER!}2ÆV*%+"ڗ!}2ݗ!}2!}TSI*K!s#rLLL*KY!s#rXM*Kg!s#r<*M&!!5zʄM"GR͐b*G#iM! R!q͐bR͐bNM"*6*"6*6*4͛EM!"6M*6!ͯEM*4"6^M!}2!}2*4!͛EʺNR͐b!R R!qb!8!b*&Q!a!a!a! aE)N*&RyN!ͩMúNRN!ͩMúNR§N*ߗ&}o}2FúN RºNR͐b*&!}2F!*~!/!"<*~!*<R!͛EO*<#" 101 Nothing ^Q: Quit, ^R: Last page, ^C: Next page, : Select terminal: Wait Sorting Definitions Change to: (Y/N)? y n Text file name: Command: Numeric entry expected Legal range is , please re-enter: Choose one of the following terminals: None of the above ( Max. 20 Characters ) Delete a definition ( Max. 20 Characters ) Which terminal? (Enter *********************************************} PROGRAM wyse; type str14 = string[14]; str15 = string[15]; chararray = array[1..32,1..8] of char; charfile = file of chararray; const nul = #0; crsrt = #12; {cursor right} TAB = #9; ESC = #27; z = #122; DEL = #127; drive = 'A:'; {default filename drive} ext = '.KEY'; {default filename extension} var fkarray: chararray; fkfile: charfile; ch,choice: char; commandline: str15 absolute $80; filename: str14; fileopen: boolean; i,j: integer; {$I wyse1.mod} PROCEDURE wait; begin writeln; write('Press '); repeat read (kbd,ch) until ch=^M; end; PROCEDURE delete; begin if (j>1) then begin j:= j-1; write(^H' '^H); if fkarray[i,j] in [^A..^[] then write(^H' '^H); end else if (j=1) and (i>1) then begin i:= i-1; if i<=16 then gotoxy(18,i+4) else gotoxy(54,i-1no. or ^Q to exit): Delete terminal? (Enter no. or ^Q to exit): Do you want to modify this definition before installation? Terminal type: Send an initialization string to the terminal? Initializaion defined as a command string? (No = a file) Send a reset string to the terminal Reset defined as a command? (No = a file) CURSOR LEAD-IN command: CURSOR POSITIONING COMMAND to send between line and column: CURSOR POSITIONING COMMAND to send after both line and column: Column first OFFSET to add to LINE: OFFSET to add to COLUMN: Binary address Number of ASCII digits (2 or 3): CLEAR SCREEN command: Does CLEAR SCREEN also HOME cursor HOME command: DELETE LINE command: INSERT LINE command: ERASE TO END OF LINE command: START HIGHLIGHTING command: END HIGHLIGHTING command: Number of rows (lines) on your screen: Number of columns on your screen: Delay after CURSOR ADDRESS (0-255 ms): Delay after CLEAR, DELETE and INSERT (2); for j:= 1 to 8 do begin write(crsrt); if fkarray[i,j] in [^A..^[] then write(crsrt); end; j:= 8; write(^H' '^H); if fkarray[i,j] in [^A..^[] then write(^H' '^H); end; j:= j-1; end; PROCEDURE newline; begin j:= j-1; repeat j:= j+1; fkarray[i,j]:= nul; until j=8; end; PROCEDURE append; begin fkarray[i,j]:= ch; if fkarray[i,j] in [^A..^[] then write('^',chr(ord(fkarray[i,j])+64)) else write(fkarray[i,j]); end; PROCEDURE fkeyinput; BEGIN clrscr; gotoxy( 5, 3); lowvideo; writeln('TAB = newline DEL = delete'); highvideo; i:= 0; repeat i:= i+1; if i<=16 then begin gotoxy( 5,i+4); write('func key ',i:2,': '); end else begin gotoxy(40,i-12); write('func key S',i-16:2,': '); end; j:= 0; repeat j:= j+1; read(kbd,ch); case ch of DEL: delete; TAB: newline; else append; end; unt0-255 ms): Delay after ERASE TO END OF LINE and HIGHLIGHT (0-255 ms): Is this definition correct? Hardware dependent information Operating frequency of your microprocessor in MHz (for delays): 101 Nothing 200 Choose one of the following displays: 201 Which display? (Enter no. or Q to exit): 202 Default display mode 203 Monochrome display 204 Color display 80x25 205 Color display 40x25 206 b/w display 80x25 207 b/w display 40x25 {****************************************************************************} {* Source: wyse.pas *} {* Purpose: program function keys of Wyse 50 terminal *} {* Copyright (c) 1984 James S. Ulrick -- may not be sold -- *} {* 2100 Los Angeles Ave. *} {* Berkeley, CA 94707 (415) 526-0474 *} {*******************************"il j=8; until i= 32; writeln; END; {fkeyinput} PROCEDURE fkeywrite; var filename: str14; begin clrscr; openchar('W',filename,fkfile,fileopen); if fileopen then begin write(fkfile,fkarray); close(fkfile); end; end; {fkeywrite} PROCEDURE fkeyread; var filename: str14; begin clrscr; openchar('R',filename,fkfile,fileopen); if fileopen then begin read(fkfile,fkarray); close(fkfile); end; end; {fkeyread} PROCEDURE fkeyinstall; begin for i:= 1 to 32 do begin write(ESC,z); if i<=16 then write(chr(i+63)) else write(chr(i+79)); for j:= 1 to 8 do write(fkarray[i,j]); writeln(DEL); end; end; PROCEDURE fkeydisplay; begin clrscr; for i:= 1 to 32 do begin if i<=16 then begin gotoxy( 5,i+3); write('func key ',i:2,': '); end else begin gotoxy(40,i-13); write('func key S',i-16:2,': '); end; for j:= 1 to 8 do if fkarray[i,j] in [^A..^[] then write('^',chr(ord(fkarray[i,lrscr; writeln; writeln(' > > > > > > Function Key Setup for Wyse 50 Terminal < < < < < <'); writeln; writeln; writeln(' 1) Enter WYSE at the operating system prompt to install'); writeln(' an existing function key definition file (filespec).'); writeln; writeln(' 2) Enter WYSE to display the previous menu of options.'); lowvideo; writeln(' Print option will print the function key definitions on an'); writeln(' Epson printer in compressed print (14.5 cpi). The printed def-'); writeln(' initions may easily be cut out with an x-acto knife and placed'); writeln(' in the keyboard depression above the function keys.'); writeln; writeln(' This product may not be sold without permission. It may be copied'); writeln(' freely and not for profit. You are invited to compensate the author'); writeln(' of this program by registering. Registered users will be notified'); writeln(' of revisij])+64)) else write(fkarray[i,j]); end; writeln; end; PROCEDURE printkey(var fkarray: chararray; a,b: integer); var printcol: integer; nexttab: integer; begin printcol:= 1; for i:= a to b do begin nexttab:= (((i-1) mod 8)*13)+2; if ((i+4) mod 8 >= 1) and ((i+4) mod 8 <= 4) then nexttab:= nexttab+8; while printcolnul then begin write(lst,fkarray[i,j]); printcol:= printcol+1; end; end; writeln(lst); end; {printkey} PROCEDURE fkeyprint; const compressed = #15; formfeed = #12; var filename: str14; begin openchar('R',filename,fkfile,fileopen); if fileopen then begin read(fkfile,fkarray); close(fkfile); writeln(lons, upgrades, and additional software. To register, send'); writeln(' $20 (suggested) to:'); writeln(' Jim Ulrick'); writeln(' 2100 Los Angeles Ave.'); writeln(' Berkeley, CA 94707'); writeln; write (' (c) 1984 J.S. Ulrick'); highvideo; write (' Press '); read(kbd,ch); end; {helpscreen} BEGIN {wyse} if length(commandline)>0 then begin if cmdline(commandline,filename,fkfile) then begin read(fkfile,fkarray); close(fkfile); fkeyinstall; end; end else repeat menu; case choice of 'C': begin fkeyinput; wait; fkeywrite; end; 'I': begin fkeyread; if fileopen then begin fkeyinstall; fkeydisplay; wait; end; end; 'D': begist,compressed); printkey(fkarray,17,24); printkey(fkarray, 1, 8); writeln(lst); printkey(fkarray,25,32); printkey(fkarray, 9,16); write(lst,formfeed,formfeed); end; {if} end; PROCEDURE menu; BEGIN clrscr; lowvideo; gotoxy(19, 1); write(' (c) 1984 J.S. Ulrick'); highvideo; gotoxy(19, 5); write('Function Key Setup for Wyse 50'); gotoxy(14, 6); write('___________________________________________'); gotoxy(14, 8); write('C Create a new function key definition file'); gotoxy(14,10); write('I Install an existing key definition file'); gotoxy(14,12); write('D Display an existing key definition file'); gotoxy(14,14); write('P Print an existing key definition file'); gotoxy(14,16); write('H Help'); gotoxy(14,17); write('___________________________________________'); gotoxy(27,19); write('(C/I/D/P/H/Quit)? '); gotoxy(45,19); repeat read(kbd,choice); choice:= upcase(choice); until choice in ['C','I','D','P','H','Q',^M]; end; PROCEDURE helpscreen; begin c"n fkeyread; if fileopen then begin fkeydisplay; wait; end; end; 'P': fkeyprint; 'H': helpscreen; end; {case} until choice in ['Q',^M]; END. {****************************************************************************} {* Module Source: wyse1.inc *} {* Included within: wyse.pas *} {* Contents: cmdline - assign a read file from the command line *} {* openchar - open a file of new type char for reading or writing *} {****************************************************************************} FUNCTION cmdline(commandline: str15;var filename: str14; var filvar: charfile): boolean; var ch,choice: char; exists: boolean; end else fileopen:= true; 'W': if exists then begin gotoxy(12,22); clreol; write('File ',FileName,' exists, overwrite (Y/N/Quit)? '); REPEAT read(kbd,choice); choice:= upcase(choice); UNTIL choice in ['Y','N','Q',^M]; if choice='Y' then begin fileopen:= true; rewrite(filvar); end; end else begin fileopen:= true; rewrite(filvar); end; end; {case} end; {if} UNTIL fileopen OR (choice in ['Q',^M]); gotoxy(12,22); clreol; gotoxy(12,23); clreol; END; {openchar} n begin gotoxy(12,23); clreol; writeln('Cannot open input file ',filename);  fileopen: boolean; BEGIN fileopen:= false; choice:= ' '; repeat gotoxy(12,22); clreol; filename:= copy(commandline,2,14); if pos(':',filename)=0 then filename:= drive+filename; if pos('.',filename)=0 then filename:= filename+ext; assign(filvar, FileName); {$I-} reset (filvar) {$I+}; exists:= (IOResult = 0); if not exists then begin clrscr; gotoxy(20,10); writeln('Cannot open input file ',filename); choice:= 'Q'; gotoxy(20,12); write('press '); read(kbd,ch); end else fileopen:= true; until fileopen or (choice in ['Q',^M]); cmdline:= fileopen; gotoxy(12,22); clreol; gotoxy(12,23); clreol; END; {cmdline} {****************************************************************************} {* Purpose: open a disk file of new type charfile for reading *} {* (filetype='R') or writing (filetype='W')  *} {****************************************************************************} PROCEDURE openchar(filetype: char; var filename: str14; var filvar: charfile; var fileopen: boolean); var choice: char; exists: boolean; BEGIN fileopen:= false; REPEAT gotoxy(12,22); clreol; if filetype = 'R' then write('Enter name of disk file to read: ') else write('Enter name of disk file to write: '); readln(FileName); if filename = '' then choice:= 'Q' else begin choice:= ' '; if pos(':',filename)=0 then filename:= drive+filename; if pos('.',filename)=0 then filename:= filename+ext; assign(filvar, FileName); {$I-} reset (filvar) {$I+}; exists:= (IOResult = 0); case filetype of 'R': if not exists then begin gotoxy(12,23); clreol; writeln('Cannot open input file ',filename); # ~i6iwX-REF DQC X-REF BQS ,,w͜͸Ͳ!v@X-REF.DOCD  ! "$#%&('),+*.-/0123o457698:;=<>@?ABCGkJ14N='/$CO>5i䙯.3by 6=^HN .إiu9| =W{ ºp`ܚBXNϼː}vѹoZIk0j.Zqn_@~.J'E)Ϭ١FŠs+WAM4vUˍG!Ǜk'CJ ^&=3v!kf~g n s~xX+]?)5ѭ뾧 12=I ~亩-F=3e`*8 rmv힛{jҤ5~;sV#v;ԤIkwT_#vԤ៯z߲/mxMg>4:C6^~jҤ5~;s9!m^W^Г9se2b4.V=D|uu@MZǪԧPsB:>4 9@2 2#jfT֥:zloǪԧP9UkjcЂ )VrXpJх{ޞs_AYP3(^GՊ8`_j=RPzZP@9," #=RP3Mz:SBJkwT+֟CcЂ*JvxC yl5\wFPCSucx5~;sVi=o9!S~,oзrj5 =EUQ=̩Z5~;sVi=oI!Sʧopݽ`g55o(^jZ]JkwT\=9Wk7 S+ vF5{l/cZ5~;sVUZjf)Vm+ vF7̖=̉5i/&MZ:0r,$Aٽ. & ~]k/T7܋ Iзrx< ūs>TiwNϏ>ow˻^i3,>02JA%EHXϏ^^z12C7?VތPP69DZ?91fd44:Cvcil R4NQJum,3єcO׀sZm{:*45 W@ZX>Q{޽VGSʏ!ikMuti^Z=MF߽V# rn}KӘ "  ! "$#%vX-REF.BASq  "!#%$'&o()*+,-/.0123547689:;<=?>@ABCDEFGHJIKMLONPRQSUTVWXYZ^[]\_`badcehfgijkomlnp~7Tl uPFnB]5wRBqG}?YjNbȝPAv|Mr:K Y5=`Uˠ_DJ2\\˿InCG 2ܨ uԜ`799n_ۮ+Yf7J߷{k"딺e՜ uԜnI[pO[{v˕}wqVܴT ܭ𻽵˫9 G29%M]޵\|k׌rs쬗ʾ[:??:9zLqFF#IWqOqCMKbd&-}cUWq#7̎Wqbd܂*w/zy#)ahq԰*9>koH#va?U<x/*̉q<7N?O8/K/FƇP8<) E?bd|5ύWqOqJ0r9L5BQ/*R 7"N?OEBQ/Yī8§8VܐgՓ?#7ft`+`P݌0NϏK}ں}`73:??O{L7cFЉws[srcXv~0Q /Dg?7^Mfu"~~k=*e`['ޞJuO>'zTD` :??uOe},EE#8P;KVщX%q@$Bs1bY,D~8B}@/·Gh#F,A7 Џ{ޮa"rY~9`Y,D~3kf38bĺST?bGpcx/"/Q 9=VL =ٞCFR`N20a:zȮ@{c[*YI Z'Gm-Z/"l"Yjžf&{N-&7,_o~O1_ 5i?UtK❈hfvFRQ[V q_3yGj>Fߌ5i[9|<U+o2Dϟ9 +ePs2ݺioedi ғrg̺[ү$2 ro j0bA jN%\w\OӽeyKzw&6AFt6ٛ]&A}vm݋˼ӀPAi=gֻ^`;{njweUˠ0b*e`6X uaʫXEX{.gySgLݨ$ +9za蹭{rY5wlnomAxы t͉>5z1r/z:XPx+G3UN8#w6"ܩWRT;}nU_|x:+#@ |+T ܯEK%܁y# ]DQ<j}7s`IJ9:b E)*)XţZ'#V :??PJ9s1fx4$yL #*{S )^]\W ̈eŻ~{%= ;?ǿӯu{="+#v uRI@C$Mw\*YfdL9b(}f:ЉG76cMXO==UZC0'F BQ㟯2޿a9ػL܀=úaw0rYf~[P*e`ߘ>j^}{,ٕrfA }/z ,(0_/|3TZC0jk0TZC0jwA8`_~<9;*_:8`_~|cQ6hA*{!#(A:ނ32sPii*͝E>__!/h"-h!2h"0h!5h"3h!8h"6h!;h"9h!>h"! h+fÄ*>! h+fÕ *>!h+fæ*>!h+f÷*>!h+f*>!h+f*͑K>!h+f*hͺJ>!h+f*"9h >*9he*GK>!g+f%>*9he*#GK>!g+fA>*9he*?GK>!g+f]!>*9he*[GK>!h+fy$>*9he*wGK>!h+fÕ'>*9he*GK>!h+fñ->*9he*GK>!h+f*!E>!g+f*g*g*g*g*g""g"g"g"gÞ*g*K͖Lʲ*g"?hÿ *g*GK"!g+f*h*g*g*g*g""g"g"g"g>*>*******Ehe*;KHSK>!g+fPc;ޒ Г9yu`fnOur5kF`A%u9!Jˎ]22trjAn}`!#CA''@ߌ us|39UsBJyo;_wޒ *St`1},*^henm:oځ/##?#FF`AUks5 p{k+yRP_DsDitPS}8gSo+cx/"#O_Yy)P `<>U?UV]DQǣZX;o(."/94W Ȳw߰쎑 sh7WTC=G9B?uC|bd#Ou̟=6G_DsDs0Gߴzs0w8I_E9Gzx 辡?UgڣFĎڃmA:ނ3rB]yUa 2Y pCJ`߲C❈}P27u-ģZJMU}QR `AJ`;(މ,s^w2A==UZC0'F BQ㟯2޿a9ػL܀=úaw0rYf~[P*e`ߘ>j^}{,ٕrfA }/z ,(0_/|3TZC0jk0TZC0jwA8`_~<9;*_:8`_~|cQ6hA*{!#(A:ނ32sP >*0heG͓GfL*gG͓GfpO%N>*-heG͓GpO>!h+ffheGH>*6heGK>!g+fþ`!yh>+f'`Å>*?he*K͖Lʲß*yh*;K>!yh+f`*yh'`m`!{h>+f'`>*?he*K͖LI*{h*;K>!g+f>*?he>!g+f*h*g*g*g*g"1"g"g"g"gaN*{h*L;K>!g+f`*g'`ï`!h>+f!}h>+f'`Í*>!h`+f'`å*î!>e*h!QhW`*&'`>+f!F*}h>!g+f*g*g*g*g*g""g"g"g"g*h>!g+f*g*g*g*g*g"D"g"g"g"g*h*g*g*g*g"w"g"g"g"gÑ*!QhW`>*vhe'`>+fÞ`!h>+f!h>+f'`*h>!g+f*g*g*g*g*g""g"g"g"g*h>!g+f*g*g*g*g*g"3"g"g"g"g*h*g*g*g*g"f"g"g"g"gÀ*~!QhW`>*vhe'`>+f`!h>+f'`*h*hͯJ>!h+f *h*J͖L.*>!h+f`*h'`À `!$h>+f'` * >!h`+f'`' *% 0 *. 3`? *h*= ;KI͓XV  !S ͓Xb *` >!h`+f'`z *x à ! >eÐ *h* K͖Lʴ 3`ë * &uX*h3` *h*hGK!Qh͵WI* oI͓X * &uX! F * >!h`+f'` *  ! >e$ *h*" K͖LH 3`? *> &uX*h3`*h*hGK!Qh͵W͡uX! F*h3`B`c`!4 F3`B`c`3`B`c`3`þ Drive number ...............! ͓X* hXG` Current disk ! ͓X A* &* hGKuX :* &uXB`c`3`4 Sectors/track ..............! ͓X>*-heXG`M [*L &uX>*-heI͓Xh ]*g &uXB`c`3`Ý Tracks/Disk ................! ͓X*gXG`ò [* &uX*gI͓X ]* &uXG` XAMN Disk editor! ͓XB`c`3` Number of reserved tracks ..! ͓X>*6heXG`5 [*4 &uX>*6heI͓XP ]*O &uXG`k Version 1.1!_ ͓XB`c`3`Þ # of logical blocks ........! ͓Xê >*0he* GKXG` [* &uX >*0he* GKI͓X ]* &uXB`c`3`3` {BAD}!͓XB`c`+*h3`B`c`*h3`B`c`ç`!h>+f'`V0*h*U&;K>!h+fo *h*n&͜K͟LʛÆ*h*&;K>!h+f`*h'``!h>+f!h>+f'`*>!h+f3`*h*;KI͓X *&uX*h!Qh͵WI*oI͓X *&uX*h!Qh͵W͡uX9 *8&uX3`B`s`2hU.*h*T&ͻḰL*h*hͻḰLͯJ*h*hͻḰLͯJ͖L**h!QhW`*hB'`>+f3`B`s`2hü.*h*&ͻḰL*h*hͻḰLͯJ*h*hͻḰLͯJ͖L**h!QhW`*h!Qh͵W*&SK*hBGK'`>+f..*h*-&ͮK͟LRF*D>!h+f*h*hͮK͟Lʢh*h*f;K>!h+fÀ*h*~J͖LʢÖ*>!h+fç*h*hͮḰL*h*KͯJ͖L*>!h+f3`B`c`*h*GK>!h+f*h*J͖L3`B`c`3`*hXG`*hXB`c`* h3`B`c`3`B`\(W)rite to disk, (C)hange more bytes, (A)bort B`C]B`s`2hB`yc`æW*h*&ͮK͟Lʌ3`Writing sector to disk...!͓XB`c`*h*hͲ* # of directory entries .....! ͓X+ >*3he*) GKXG`D [*C &uX>*3heI͓X_ ]*^ &uXB`c`3`Ô Block size .................!w ͓X*gXG`é [* &uX*gI͓X ]* &uXB`c`3` 128 byte sectors/block .....! ͓X*g* hKXG`[*&uX$*g*"hKI͓X9]*8&uXB`c`3`nDisk size in K .............!Q͓XzÄ>*0he*xGK*}>*Ehe*;KHSKXG`ö[*&uX>*0he*GK*>*Ehe*;KHSKI͓X]*&uXB`c`\ Help Examin a sector (physical)......... 1 A Examin a sector (logical skew)..... 2 B Move Sectors ...................... 3 C Produce a map of a file ........... 4 D Produce a map of disk ............. 5 E Find bad sectors .................. 6 F Compute Block from Trk & Sec ...... 7 G Compute Trk & Sec from Block ...... 8 H Select disk ....................... 9 I 3`B`\Please enter selection ==>B`s`2hB`yc`Ò`!h>+f!h>!Qh͵W*&ͮK͟Lz3`B`\Write fault. to continueB`s`2hB`yc`3`B`c`* hi *h&>!h+fÌ~A*}&>!h+fÐAÔC*h*&ͮḰL*h*&ͮḰLͤJ͖LDA*h*&ͮK͟L*h>ͫ`1*&ML3`B`\Track, sectrB`C]B`yb[!h͔Y!h͔YB`yc`3`B`c`* ha3`B`\(F)oward, (B)ackward, (R)ange, (C)hange, (E)xit B`C]B`s`2hB`yc`*h>ͫ`ÜF*&ML¾í*n* haü>ͫ`B*&ML*͑Kn* haü>ͫ`R*&ML–3`B`\Number of sectors to displayB`C]B`yb[!h͔YB`yc`* h>!h+fV*T>!h`+f'`*hr!p>e*haÆ*n!zFü>ͫ`ßC*&ML¼*h*hpͪü>`E*h*&ͮK͟L;ã/>ͫ`2*&ML3`B`\Track, sectrB`C]B`yb[!h͔Y!h͔YB`yc`3`B`c`* hQ3`B`\(F)oward, (B)ackward, (R)ange, (C)hange, (E)xit B`C]B`s`2hB`yc`*h>ͫ`ÞF*&MLï*n* hQþ>ͫ`B*&ML*͑Kn* hQþ>ͫ`R*&ML+f'` *hG͓G>*6heG͓GL>*-heG͓G%N*hG͓GLf L>!h+f]fh*gG͓GfYpOpO>!h+f`fheGH'`k`!h>+f'`ì*hG͓G*gG͓GfpO%N>!h+ffh>*-heG͓GpO>!h+ffheGH>*6heGK>!h+ffh*hG͓G>*6heG͓GL>*-heG͓G%NL>!h+fPfheGH*NGK>!h+f^`!h>+f'`*h*hGK>!h+f*h>*-heJ͖Lë*h*GK>!h+f*h*gJ͖L*g*;K>!h+f*>!h+f*h*J͖L]*h*;K>!h+f+*h*)J͖LMA*?>!h+f>*-he>!h+fN`!h>+f'`*h*hpp*h3`ÐTrack=!͓X*hXô Physical sector=!͓X*hXG` Logical sector=!͓X*hX*!Qh͵W*&ͮK͟L-*h3` {BAD}!͓XB`c`:*h3`B`c`*h3`B`c`?`!h>+f'`*h*hp*h3`ÀTrack=!y͓X*hXä Logical sector=!͓X*hXG` Physical sector=!͓X*hX*!Qh͵W*&ͮK͟L*h$˜3`B`\Number of sectors to displayB`C]B`yb[!h͔YB`yc`* h>!h+fX*V>!h`+f'`*ht!r>e*hQÈ*n!|Fþ>ͫ`áC*&ML¾*h*hͪþ>`E*h*&ͮK͟L=ã/>ͫ`3*&ML¶# *&>!h+fL PE*h*&ͻḰL*h* &ͻḰLͯJ*h*&ͻḰLͯJ͖Lʧ3`B`\Move (L)logical sectors, (P)hysical sectors, (E)xit B`C]B`s`2hB`yc`ëE*h*&ͻK͟Lʜ# *&>!h+fYA*h*&ͻḰL*h*&ͻḰLͯJ͖L 3`B`\Source Track, Sector B`C]B`yb[!h͔Y!h͔YB`yc`3`B`\Dest. Track, Sector B`C]B`yb[!h͔Y!h͔YB`yc`3`B`\Number of sectors to moveB`C]B`yb[!h͔YB`yc`3`B`c`3`Source Track, Sector = !͓X*hXG`*hXB`c`3`4 Dest. Track, Sector = ! ͓X*hXG`*hXB`c`3`v Number of sectors to move ![ ͓X*hXB`c`3`B`c`3`B`\Is the above correct (Y/N/(A)bort) B`C]B`s`2hB`yc` A*h* &ͻK͟Lʜ# * 3`B`\Press to continueB`s`2hB`yc`ã/>ͫ`?)5*>)&ML,*`!h>+f'`b)!a)!h!h`+f'`É)*)Ò)!)>e*h*hͯJ͖L)ð)1!)!h`H!h!h+f!)F`!h'` ***>!g+f* h>!g+f&**$**g*g*g*g"D*"g"g"g"g3`B`c`j**h*>!i`+f'`Â*>*0he**hKÖ***3`å**i**SKI͓Xü*: !*͓X***>!i`+f'`****!*>e**i*iGK>*0he**hKJ͖LT+>*Bhe*iGK*iGK"Nh3`>*NheN)͓XK+ *J+&uX!*F3`B`c`!*F3`Ã+ Last block is!u+͓XÏ+>*0he*+GKXG`è+[*+&uXö+>*0he*+GKI͓X+]*+&uXB`c`3`B`\Press return to cont.B`yb[!i͔YB`yc`ã/>ͫ`!,6* ,&ML.3`B`\Starting track, last track B`C]B`yb[! i͔Y! i͔YB`yc`* i>!h+fÇ,*,>!h+fÚ,f,>!i`+f'`õ,* iG͓G* iG͓GLf,L>*-heG͓G%N,!,>e3`-Tr>!h`+f'`*h!!!>e3`7! Reading track!)!͓X*hXP! Sector!H!͓X*hXb!L*h*a!&ͮK͟Lʛ!3`Ê! Physical #!~!͓X*hXß!P*h*!&ͮK͟L!*h*hpp!*h*hp!!*!!Qh͵W*!&ͻK͟L"3`" Fault!!͓XB`c`"3`B`c`3`6" Writing track!("͓X*hXO" Sector!G"͓X*hXa"L*h*`"&ͮK͟Lʚ"3`É" Physical #!}"͓X*hXÞ"P*h*"&ͮK͟L"*h*hpͲ"*h*hͲ""*"!Qh͵W*"&ͻK͟L#3`# Fault!"͓XB`c`#3`B`c`*h>!h+f*h>!h+f;#*9#n*h>!h+f*h>!h+f*h>!h+f*h>!h+fw#*u#n*h>!h+f*h>!h+f! !Fà#E*h*#&ͮK͟Lã/>ͫ`ÿ#4*#&ML6)!h"h*h"Zh>*6he>!h+f#*#>!h+f3`B`\File name ( only to skip) B`C]B`yb[!h͸aB`yc`F$!hI*D$J͖L3)#%*h>!h+fn$r$*l$!ah͵W*q$&ͮK͟Lʚ$*h>!h+f%ß$*$>!h`+f'`÷$ *$$!$>e$?*h!Zh͵W*h!ah͵WͻḰL*h!Zh͵W*$&ͻḰLͯJack:!,͓X*hX- Sector:!-͓X*hX2- !/-͓X*h*hppL-P-*J-!Qh͵W*O-&ͻK͟Lʈ-3`x-{BAD}!r-͓XB`c`Ý-3`Ó- *-bI͓Xâ-*-n!,ZF3`B`c`3`B`\Read complete, press to cont.B`yb[!iLB`yc`ã/>ͫ` .7* .&ML.3`B`\Track, Sector B`C]B`yb[!h͔Y!h͔YB`yc`3`e.Group #!].͓X*h*hXG`*h*hI͓XB`c`3`B`\Press to cont. B`C]B`yb[!h͔YB`yc`ã/>ͫ`.8*.&ML£/3`B`\Group numberB`C]B`yb[! i͔YB`yc`* i͕3`4/Track:!-/͓X*hXG`P/Sector:!H/͓X*hXB`c`3`B`\Press to cont.B`C]B`yb[! i͔YB`yc`ã/>`ì/9*h*/&ͮK͟L/*h>ͫ`/A*/&ML5\ To examine a physical sector use this command. Sectors are numbered from 1 to the end of the track. Tracks are numbered from 0 to the end of the disk. The physical sector number displayed is the sector number from 1 to end of track, the logical L%*h>!h+f!$F`*h'`ý&`!h>+f'`*h3`F%Track!@%͓X*hX_% Sector!W%͓X*hXq% *p%&uX%*}%>!h`+f'`×% *%à%!%>e*h3`*h!ah͵WuX!%F*h3`% *%&uX%>*0he*%J͖LK&%*%>!h`+f'` &* &&!&>e*h3`*h!oh͵WI͓X9& *8&&uX!&Fï&P&*N&>!h`+f'`h&*f&q&!o&>e*h3`Å&*h!hh͵WI*&oI͓Xà& *&&uX!y&F*h3`B`c`!hH!h!h`+f'`''>*3he*'GK*'hK5'!3'>e*h*hp3`e'Searching Track:!T'͓X*hX' Sector:!v'͓X*hXÚ' !'͓Xæ' *'bI͓Xõ'*Xh*'GK"ah'*Xh*'GK"hh'*Xh*'GK"oh]$͖L'* h&%(!*Xh*'GK"ah(1*Xh*(GK"hh)(1*Xh*'(GK"oh]$͖LH(* h&%M(A*Xh*K(GK"aha(Q*Xh*_(GK"hhu(Q*Xh*s(GK"oh]$͖Lʔ(* h&%Ù(a*Xh*(GK"ahí(q*Xh*(GK"hh(q*Xh*(GK"oh]$͖L(* h&%(*(n!='F3`B`c`%sector number is the number your BIOS uses to access this physical sector. When you type this command you will be asked for the track and sector you wish to examine. After you respond the sector will be displayed. You will then be asked if you want to move forward or backward from your current position on the disk. You may, at this time, specify a range of sectors to be displayed from the current position on the disk. You may also edit the sector making changes to it in an buffer internal to XAMN. And last but not least you can exit to the main menu. Each option is selected by one key press. The letters are F, B, R, C, and E. When changing a sector the sector address in hex will be displayed along with the hex contents of the byte and the ASCII character it represents (Period if none). To enter a new value type it in, to move forward push return, backo>\ This command generates a map of a file showing all the CP/M groups assigned to that file. It also reports on the directory sectors that contain that file's FCB. As each directory sector is searched a report of that operation is made sector by sector. 3`B`\Press to cont.B`yb[!h͔YB`yc`xE>ͫ`x>E*w>&ML@A\ This command generated a disk map showing allocated groups. A 0 is an empty group, un-used by any file. A 1 is a group in use by a file. WARNING: this command makes a BDOS disk select call. At the end of the map a few groups that do not exist may be displayed as empty. This is because the disk map is made up of bytes where each bit in the byte is a group, the last byte in the map may not be fully used up. At the end of the map the last group number is given, use this number. This command can be used to find unused disk spaceward push back space, and to exit push period. Upon exit you may re-edit, write the sector to the disk, or abort leaving the sector on the disk un-changed. 3`B`\Press to cont.B`yb[!h͔YB`yc`xE>ͫ`5B*5&MLn7\ Use this command to examine and edit logical sectors. Logical sectors are the sectors that the BDOS refers to, the physical sector number may be different. It is the physical sectors that the BIOS access. For more info see 'A' above. 3`B`\Press to cont.B`yb[!h͔YB`yc`xE>ͫ`w7C*v7&ML<\ This command is used to move sectors around on the disk. It can be used to move physical sectors or logical sectors around. The main purpose for moving sectors around is to allow re-formatting of a track on the disk. First, move the data on the track you wish to re-format to an unused area of the disk. This area can be fo. 3`B`\Press to cont.B`yb[!h͔YB`yc`xE>ͫ`IAF*HA&MLŽB\ This command is used to find a bad sector. It will ask for a starting track and an ending track. As it reads each track and sector it will report its progress. Any bad sectors will be reported. 3`B`\Press to cont.B`yb[!h͔YB`yc`xE>ͫ`×BG*B&ML¹C\ Use this command to compute a group number from the LOGICAL track and sector. Remember that logical groups start in the directory, NOT in the reserved, or 'OFF' tracks. 3`B`\Press to cont.B`yb[!h͔YB`yc`xE>ͫ`CH*C&ML{D\ Use this command to compute the track and LOGICAL sector number for a given group. 3`B`\Press to cont.B`yb[!h͔YB`yc`xE>ͫ`ÄDI*D&MLxE\ Use this command to select another disk. XAMN commands are in reference to the currenund by generating a map of the disk using another of XAMN's commands (Map disk, see also help 'E'). Second, exit XAMN and using your system format utility format ONLY the track with the bad sector. Re-enter XAMN. Third, move the data back onto the track. This command will start by asking you if this is a physical move or a logical move (use logical if you want to move CP/M groups around). You can exit at this point. Next, you will be asked for the starting track and sector number, the destination track and sector and the number of sectors to move. BEFORE each sector is read or written you will be told of it, if an error occurs you can see where it happens. AFTER the operation the program will move on to the next sector if all is well or print "Fault" to show a read or write error. 3`B`\Press to cont.B`yb[!h͔YB`yc`xE>ͫ` to cont.B`yb[!h͔YB`yc`xE>`ÁE*h*E&ͮK͟LʗEÀ !i"QhQhCopyright (C) 1979, By Topaz programming. All rights reserved. From here on protected by End User License.  "F"F!F>+f!F>+f"F>e!F>eL*F>+f!F>e*F>e:FFKF*F!F>e!F>e!*F>e!F>eL*F>+f!KګFʫFF"?G"RG"cG"aG"G"G"CG"OG*cG*"*aG:dGUGMLBG*G*aG*cG!**cG;K"!ML2G2GBG"G!G>+f:GW2Gz2G!G>e!"G!G>+f:GW:G2G!G>e!"H|2HG͑K)}lg"H! H>6#=G>/! HwT:HG:H2H! H>e!"PH!YH>+f*ZH}lg:YH2H!OHSHGHG|g}ox<7H:_HܑK!!GH"Ha2b!bw+>Q~+2@S#"AS>+2CS~#Q Q QEˆQ~+ʫQ-ʫQ+>+2CS#~Q{_~-S_#ñQ+6E:CS+{Q/<2XScRx//2DS!DST:@S+R:JS2JS:XS5R!iSR/<2XS![S"YS>e:XS==R2XS*YS>epSR!bS>e!DS>epS*c>+f*cU*c~w2?SG!ES>6#=oR*AS~E S#"AS.R>2?SvR!ESKS~#šR!JSJSS!JSJSS!JSPSS!JSJSS-S2PS!OS>6+=R!JSPSS:?SR vR:?S S*AS!XSE S. S4R:ES;S!JSJSSɯw+"S05S >7ѯ7"-T!UT>+f!NT>+f:VT0T:OT0T![T~_w!TT~Ww"\T:NT2^T!ͿT!fT>e*-T͋T*\T!BT:=TͿT!e!!_T>e*-T!TT ~w+ sT!VT~w# ‚T!HT 7wҜT+T`!=T~+~=w!HT ~w+®T žT2 2aaa!"WI!azZIw#zZIw#{ZIw#{ZIw>2aaa!0:>"I,K&"Ia2a!a 6 #=I!a6!aJ:a:>"J~##` J @~EJ#.EJ&J~EJ#.EJ7JJ~VJ#JJ!JwJ!JwJ!aJ w#nJ~*ƒJ> _y{ʑJ ‘J>?w#yJzW{_zW{_z/W{/_")KML>%K#K")KML>%K%K#K")KML>%K#K")KML>%K%K>%K")KML>%K#K")KML>%K>iL!|9K/g}/o#}o|g}o|g"zK}KZK*zK"zK}K6ZK!||KxŷK|/g}/o#y>KK>Ky>KKy>K>uL".L!a>+f!a>+f!a:aK~-L:aa!a1LL*.L!aa~w!aa L-L#"L!6LJLOBLy?zaLz>^L7zhL{!sL!&.TL.F"L͟L!‘L!!|>}TʿLtʿLYʿLyʿLʿL>>"L!LAQ:LW:L2L*LLw#L>L>2)M+~6# U>w+>U~™V}>ҞV/2_W}o|g"[WDM:_WV*  " |!9]"Xa2a!a]*X"&Y(YY0XX!a6 :Y+Xw#XwXx"&M!1M>+f!,M>+f20M25M6M!,M>e!ͿM!,MM!1MM**M|cM:*M]M!0MNcM!5MN!5M0M+lM**M}}MM!0MN>2*M!/M7wҠM+”M:*MG!/M~w!,MP:-M2/M!/M~_w!4M~Ww:)MW"*M!,M1MNGMxMMM4#~wM~/w+ N~w+~w N"N!N>+f!N>+f:NN:NN!O~_w!N~Ww"O:N2O!N w#gNyNʔN OOrN!NNw+ ˆNrN:OG:NO2NxN:NNxN*O! O>_O! O>e*N+O*O!N:N_O!N>e!!O>e*N!N~w+ O!N~w# "O!N7wO2NzW~ww"bP!P>+f!P>+f:PqP:PeP!P~_w!P~Ww"P:P2P͕PO!PͪP O!PͪP!PP+O?ڴO!PP+OôO:Po:PgG2P|&Px&PxeP*P!P>͵P!P>e*bP!P7wFP++P!P͞P!P4#>w!PP*P!P:P͵P!P>e!!P>e*bP!wP^ DIVISION BY ZER!P͞P!P~w# ¡P~w+¬PzW~ww~2Q#~Q+~=w~w~w+P P6&Y60#<62a:] Y!a:bO>]*&Y"Y!Y|>+2YGY}/o|/g#>-2YYN#F |_Y,SYy/Ox/G y0w#zYNY*YaZaqZڪYs#rͰYÕY!YYERROR IN INPUT, RE-ENTER PLEAS:cc`:cO`yc`!Y`:ab[??!YYNUMBER TO LARGE/SMALy!'Zx'Z.Z) )Z"oZ>2nZ7?{_zW!nZ5kZyOxG#yO#xGCZ*oZ DMCZBK2c +ʅZ-†Z>2c`i"Z! ʩZT])))0 ?ڷZ_ÎZ:c|/g}/o#*ZDM! Hȷ707 Z?_))))Z"@[:aO1[*a~ [ #1[Z~,K[ K[ K[E~&[+K[-K[ #X[[~,9[# >0X[~,1[&[B[~,X[# "ay2aO>͐de\O2a!a"a2aVf[ [[[ \$\[w2\:cʼ[~c~#[>2a6:c>ç[x[+~c[x[+>c> c>c[[>#cc`!a>][>#cc`:ab[!E\r_:cOC]:ab[TOO MANY CHARECTERS. MAX IS 252a!a"a2a^#V"\>!\*\*a*a~ ʰ\\#"a:a2a\!\^>!\*\*a*a6!a"a#"a:a2aҾ\>2aþ\-ASCII FIL~\#c\#~#"Sf^#=fV#=f*Sf*Sf^#V#N#F#N#F"Sf__{Ffs+=Rfr+=Rfs+=Ef!f_ff> rf!D !xf^%BAD CHANNEL NUMBEfËgËggggËgËgËgÐgfygÂgËgËgËgËgËgËgËgËg_cg|f*f:bgff2bgf!ggf:bg:gcg|Ag*:g7>|Tg2bg:g2bg:g*wg|! "wg__7:g­g\!g^>2g:gg\!g^_<2g!~ɀ&INPUT FILE REA   yc`G`2B]~2]2A]#~2]c!A]52]]:B]G`yc`!I]`?2]"s]v]a2]!][c_>]c> c:q_=2q_F_>2q_yc`Vfa_:p_/2p_Vfd_^"#͘_!_`:cc` WARNING ONL:cOc``!_`:c!_`_ ERRO IN LINE*c|0c|0c}0c}0c!c>w~`c!c4#`c* s#r#" * +V+^" y2b \f:bO!Nd ~N`> c<U`O> c> c2c>͐d—`^#V>!`!`:`Vf:cʨ`c"``:a!ae:a`:a!:a!ae:a`:a!!"a2a a!aO  ~2aQt"Sf^#=fV#=f*Sf*Sf^#V#N#F#N#F"Sf__{Ffs+=Rfr+=Rfs+=Ef!f_ff> rf!D !xf^%BAD CHANNEL NUMBEfËgËggggËgËgËgÐgfygÂgËgËgËgËgËgËgËgËg_cg|f*f:bgff2bgf!ggf:bg:gcg|Ag*:g7>|Tg2bg:g2bg:g*wg|! "wg__7:g­g\!g^>2g:gg\!g^_<2g!~ɀ&INPUT FILE REA   !a+f!a2a!a͐d.d\f2Md^#V!Dd!Md>:LdO:Mdʮd!A œdd#~#^#VN#!A ºdd~#d&R*[*S1T#=1FpX:K/\\ة+e =W,u*/w XޕsƯN-ww*UGsb0M &OTDkT>:( =WX֡+|r;A{sacTTзk5yʖ .hA$-a5:LTGlN =ƽ-Kr=wJb1*sNňuu1>q0.T=W, wXCAT40 MSGb"XCAT40 AQM *XCAT40 OBJRXCAT40 DQCThis library contains the cross reference programs used with MCAT42 the reason I did not update to XCAT41 was because all I did was change the display format and added a clear screen at signon. This was for the Osborne Executive but I am sure it works the same with the Osborne 1 (80 column). Note: For those of you with a printer that has a switch for perferation skipping you should set the switch to the off postion before running the hard copy option of this program. This is a great program !!! Guy Gamble here on FOG or Compuserve CP-MIG 74375,257_ŗ˝[Tta1=%i.ĪwXG&,UE^fnc܇:_/EmUnhճbcV`"UC˻N]bX X#_UxcMX "1R#[$_bXŰ<.ڢp?wV=2Vzi6Wbn/,ŰЦ}pyzz&mb7&~ Y K&GZvpLJ+TT,vi/DW -bִ } ttOޱ|+93˅Ļؗ zLH߉.*TT,|1;3DƯCeK&H. 2b_*X^jGZvJc\O1BG*Y693'"#VTNP%HAd&žTK^j$ wj8 aݤ\ vwl2-^./q?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd$m'|$mlŧv]Y@n^t4-k6,!e,j\7߱}hݲfnc#bL"ǟ"UHBicm+LӢ&iʖbiS1p-i\ƨl spPXغ+8BudV"֩>U I`[w+4&~`\: cѭ=̵=zUT4bX _;IpX ݢT瘦EsM-U E9ܩ[zo>]'TT,.T| zPRޣG_-]S;륎V,A󠡪JMyp}byXH[+BeKzLb[Vϡ 5|=Wltږ\W K",;-&~Yзk; eyyp}'#+ƳNEu#,;4JUiBt'/:b<b<I;deZH 0Pof#,/cOvt(CvcOciՑcgoftQ2-^.OGW??Fn^ttiEϟ,r9R!il;mlc1,f_1`꿨>Z+[ݝ:XwӪ =`P|lKdl[#=1Ja6HIcEiiz1 =`P|lbX ^FeKN>vV߰PfhfY a1xQ-]+BjBIeˢmY a1(^.!2PR  ޕsƯpݝX \C{|G(; &VQ+a\D&_t+:"Nzhڴ==}EoWS,4}a$2e̶,Ű=vusƯv٢/WݩO,M9(0yw[UB@:?zaJzaXhPP7;YhX Y(I xY4-lo׊txz(Һu(* uN腅QVY8|QX{봊X a1(N~ a+XH\'I>FT`1,)$ɉAi$#!XbdLn"c@˳-J+;mRbUYww:yиW/j@p=JC"kAŰ"?K(&0[FY lgMNd+-JE}8f1,4<H;h(CNPq\`@6,4<H  M7FCB٩Pʖ .;*ae-N͑O 2֭NЈUdU _YEH#O 20N[:m݁H ዂ_ޭw˪R>zR"?^aR4H 'X5֑uں2XNf8R Df+!paPR+a1,#z(S|yzLŰi}zCvȶCvȶ,EZ_T(膢n(膢n(a< VC1|1hGW?Oy8(YF~zml;<ˢ8Ra \Yeۑcc۹kTH!vȶC۹k#+vȶCmY^a0PaPa4fzCvȶCm'se1,Š8/ zPYJ6PJڅ`b=Vcv>RP!-2V=Cu: abLÝuPN{h֗11y;FTq?W*=WA{ mwbיw N^n2:N u+v!:X_bX Kޮ#+n(膢n(膢0#,;4JUiBtŰlVca zԸ[Vrs1vǕcaB 10fzPa?Y6-FGW?1abpP|N_N+a1,dGT;`5IòMVGW?< iZ4?$i3`]'@iW?1 +15|6YQqwUB 'Y Kf͑Ox cz^a0ΊfLdzUezԨlN+a1,7 np7 np7 np7 np7 cXhX %iゅS`4L߉xe 4 e]|`$2--"=\a8^,ŰCYQRC{6~?d&lkhX) EN)=1-T#bXv)I (͆J+Rz>RqBYh"mXhӦRz!ogͅS`4ygN4dyPweplo׊0ƘgvּPvz"ӫ*,K 1Es͊fB٩P6Y.,YL7 ÒH6PѤm8PfYP7k 2NݣBCUS`4Lek"a8l5 eh/8ƨl`cGV[w,YEB6PѤmM6"c+8VЩM 2^Utoc{p>R;mRPѤ&|IrDvirk8u:BIe[Z$,ŰBB4-k6cX=vj[;a1جx5IHi)Li:ܕ U?&岷=W,ӴhI*[O,]S`4lg &'2Y}E4:"NѰ:oEoXe5PێT>(Xg %z"Rg1,`VӴhk6,4ˀbѴD+"zi:v>RqB٩PdB@2lŌ4ˀŬiP7k,:aZ5Do5l wkX(I QBdӘįoPviȼ*2V|S= %ioiP6j`1k_/D&!ƫzS"Xhy#*aI$INdb#qc:DںX(I HEIBe]a1,ū]Cl.ƨlNz0W iZ4$mƨlX K-^fYu2jY(;?\_Oz}(ˌŰi =JGUv6l u*;LӢ&i3$D=崊 Rus?0("D 2LTS;ݢTQRծ=+)5`i\'_B߮_?:1ެ1 %iゅs1F,:N-1BIet`|Ld&~}Ư=j'N ifuގY(I n,tjS)LU+7vBEtXH9Sm ;BibI$ŰH6PѤqQD-zPBIenr-&~4 M;p߭CPRBp=*[*۵b$2 Ls"+[AS[jT>BoW؞Ű+a~LZzVz!og,ŰMz[U*RNX/5ƛy;u/zq*J,](jJ,yKd#\NA{6~ݲTBY8՛قJV\p6m e5DVU񀃇Vκ eYCdb`+8w ߳P1jKf ov4 u YCdvN|a$2`VĻ/*!}★N腈!R}8ƽs(W[VX(e5599( z w˪RBG*Yhy5:D ީw Vϡ% %v 빊Xhy J9v c<J#8*bNJVHA{LNPѤqQD&>R|qmv1k0K1 m@Bϳy;k."c+|=&~VP7k,T4)S-XyYgse1,ŠnPR"+$&OTDAz,%ogG@2kL{x=rw"x:BI<j cyи<;)*B y;k4ˀvujfuގQZ=znYU*b%u4i`Bϳɷ *)8ViDf2WW8CYNNF,T'-goEBEX-^ ecCc׷)7Q,%V4ߏTx'"㿨>Z+[a[w@V +ቅX Kh| EZ_>Pf5aIG79Lb#=W!P,or#j b#V BB k:N[w,%VGዂ+D_Y(?#f\ ehӗoA&}/{[_NF 2u=\!XYhySJcz}H`B٩PEZ2==XGX[TB@2[)PLn"}ȺC _-ww*Y(,<|+DVmUH9=yHJP 2©=XBur0b:i$,<|+w*@lr"ǘįo=&~SnX Kȿ)V 2\!RB&PPX]4,bX ARapW*G"CC+-JE0N|bXlGNѰ:o7LJ"U) ;;E!aB@-;_N(S,%i{9";uFvXHWlNAR!D*PV$'21N|XH[w: M7!%2륆ucDpe1,IH#Ddܲ, mcnv0qF'A[Xhy#"3+&(RNc #,Ls5!RzXںBG*Y9!iNdlRW8x,.sa1,IcƯlX Kmős1F,PP~.FSmbc 6a$2`1kx:o(S,4},4}cÒ_T4 Y,T'- =>W:)D.L^=Sm ;`Yc)ÒoZ) M 5,4}cXHセ2WXfuގYhPP7;Y(e5"3[6~׿8'X=ƛy;f$2`VX(;uVBuZXBIet`SHAd2\_aYc*,xNf T[)8B`"c$R;4* YBIe>p#,Px:o}8F#8BdBDfw)T9+-JE,Κr=|eU#,4<HLn"T;{^i`B y;kBdlRAi\E,4<H %@B y;kBdlRAi\E,or5 eu `85Df#1;6m e5'"c+ܪxa5 M;paIlB5Z8hGpFib1,y;kr|YyY;Òt)Y/5ƛy;V[=ƣlB("}\lV,YBIe>ziJB@Κ;a1,R\E 6FmYb#4-k6cTT֭Ű\8)&0["XiBUX(e5%Li e5*[*S(S,YaYsy?";uW-jbC O!KnYU*bc`5\ 2-\)4ˀqAdK v ix&6[VX(I HE^̤T!2VTةnY eh"ihXHWlNnYU*bbv,4}Å&.Exq0_B¯S=\_,:aZ >VPQ䣟,gk.wk g|XP,or#j b:D Ȫa5S!e1,f)?#`B5 edyyS9?ډ,Y bX(e5"ӫϗ?o'NPf0O,tJF/,or#ÒlHYDfw)8CV+ڴ)Df❎|P|B?$ii`Bϳf]ְP % u ȼ*n;@:)D&֑u!RP %aI6H&PPX]4,%L)԰ЦM,<l;v>Ruwa qWJ,yKd#\.(S,<|'2ZE;V,bX Azb1,IH#Y(?#`B٩P6Y vFB-bePR %iYbfXhHv{TT,Y,fMM`B&PPX]4,bX ՈR[#hO]O\E AE+~o u_wᯣO\9#4j6cÕS6](~X}:]|u(Y a5Rz9h$Ű,S)I x[lXg %KɶBIe[Z$,:aZ\X(I xK9È܇h;5>:LB+E>b1,S);uFôx %ioiũk.G:)DfRA:\\PpY(e5P4i+ %b&X{봊p&,T䣌L4\!a򊵷NCσFH1 \_Y a1HP-ww*PRŘחb$2X4-FoWDjbq=M}8fiٖS?4_+TT1Ò Y2kAiBi/f@:LY(;,>_މǤP5v/,,4<)Gi/f /,YEBIe6;#"SYg9+TT,)Q^:N[w