@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 170ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8 uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8 u@jd(@D@P(DD(DD@@HHdN$B.h*$NĤHDJDDDDD.@@ B$T}@DjĪȨΨȊ䤤j*,*JĪĪʊƨƢJJJJFNJJD(HHBB""@U}JȮ䮮jn,ꪮNNNJNlDDDNDV}BBDFĪ dd FJFB(j,*@JNNJĪƪƂƨ@JJJ&NJJ.N@NLJW}BBD@(ll(FĪ dd FJFB(j,*@JNNJĪƪƂƨ@JJJ&NJJ.N@NLJ fff666>`<|fl6f8l8nl6  `00`f<0 0 ~~0 0< Z}f ff~fff~~f<flxlff`````~cwkccfv~nff [}ffff<cck>6ff<0000>@`0 | |~~f~~f~f|f~~~~`~~~|~f~~|~x|x~~~x|xxx~~`n~~ff~~ff~~~~f~~f~|~~f```~~~wwkc ]}fv~~nn~~ff~~~~f~pp~~ff~|~~f|~f~~x~~~~~fff~~~ff~~<ckwwf~<<~ff~~~~x~~x`x`~<~~< ^}0~0 ~ <~~<>f>`|fff|fff>ff>`|ffff8~f<``lxlf8~v _}kcc|fffffff>|f```<`<|~ffff>fff<ck>6f< ~ 0~<~~< `}<8, 8x8fff|`>fff>|f```<`<|~ffff>fff<ck>6f< ~ 0~<~~< @d(@@(DD(DD@@HHd"悂.*.΂⢢ꮢDDDD.@@ B$b}@NjȨΨȊ䤤j*,*ꊌ¢JJJJNΊND(HBB""@c}D@@@DDD$$BB00ss @D@OLLL @LH|xDDDNDd}BBFN `NJNBତ(j,*JNNJ@JJJnΊJ.N@NLJe}BBD@(ll(N `NJNBତ(j,*JNNJ@JJJnΊJ.N@NLJ fff666~`<~fl6f|l8nlv  `00`f<~ff~ff~f|ff~~f``f~|ffff|~`|``~~`|```~f`nf~ff~fff~~f~ff|fff`````~wkcccfv~nffi}~ffff~~ff~``~ffff|~ff|ff~`<~~fffff~ffff<ccckwff<0000>@`0 | |8pp8?k}ww<~~~<x`x`~<~~<l}0~0 ~ <~~<~f~`~fff~~f`f~~fff~~f~`|~~ff~`~ffff8~f~`ff|ff8~wm}kcc~ffff~fff~~fff~`~fff~~f```~`<~~ffff~fff<cckwff, capture string and store in paste buffer ___BRANCH: to in subsequently loaded macro file0}, or branch if: - STRING/MARKER/BANK: Not Found - Macro CONFIRM: Negative response - Macro ASK: Null string en0}tered - Macro TEST: Block mode inactive - Macro TEST: No selected text - Macro TEST: No edits since save ___0}CONFIRM: Print <>, get Y/N response, branch if not "Y" ___MENU: Print <>, gosub macro att0}ached to next keystroke>, get Y/N response, branch if not "Y" ___MENU: Print <>, gosub macro att0𠣶𠰠䠳󠲠 ++____ ___KEY: Wai4}t for keystroke ___INPUT: Pause until typed ___PRINT: Display <> until next keystroke __4}_EXEC: Gosub ___SET: -Insert Mode -Overtype Mode -Lowercase -Uppercase -Normal Text -Inve4}rse Text --Select bank 1-10 -Select bank macro run from -Clear edited text flag TEST: -B4}lock marking -file edits -Selected text @___Startup macro &___Autoexec macroear edited text flag TEST: -B4[𠣷𠰠䠳砱 Enter with +, args in inverse 18}st # to print new page, #=cond bottom margin output ATASCII centre line page length doublestrike pri8}nt add-in #2 edge line right right margin footer, #=offset print style # get file or bank # top margin heade8}r, #=offset underline italic print include verbatim justify page wait add-in #1 printab8}le ASCII left margin line spacing left outdent last # to print page wait add-in #1 printab8R𠣸𠰠䠳砲 superscript print subscript print left<} para indent right para indent left h/f margin right h/f margin insert page # set starting # pages to skip<} non-break space soft hyphen non-break hyphen ignore to next comment line heading level - reset <}headings add-in #3 add-in #4 add-in #5 add-in #6 Enter with +,+     <}                 ` {     <e𠣹𠰠䠳󠠠 Input Dialogues: ___Insert paste buf@}fer ___Insert full file path ___Insert file name only ___Insert last file loaded Special Keys: @}________Enter Return character __Enter Hard Space __Enter Escape character ___Disable @}Init/Autoexec macro SpartaDOS X Syntax: LW [files] [/M[c]] [/Ppath] [/Q] [/X] M : Disable autorun macro or run "c" P : S@}et Search Path Q : Disable loading screen X : Load "Clean" [/Ppath] [/Q] [/X] M : Disable autorun macro or run "c" P : S@=Footnote demonstration filefor LW 3.1Footnote Demo File- THE LAST WORD -Version 3.1[C]2009byJonathan HalD}lidaySet up page formatIt has always been possible to produce rudimentary footnotes with THELASTWORD by means of tD}he three line footer buffer, but with Version3.0 this limit has been increased to eight lines[1], allowing proper formattinD}g of complex notes.A suggested procedure for setting up footnotes is as follows:Bulleted list with hanging indents-D} Type the text of your document as normal until you reach a point where you want to reference a footnote.- Using the Where on the Page command to keep track of pagination, enter the footnote number, usually enclosed in angle brackets[D}2].- On a new line, type the , the footnote number, then the text of the footnote. End with .-D} When you are getting near the end of the page, cut and paste your footnote definitions for the page so that they appear at tD}he cursor position.- You now need to manually format the individual lines of your footnotes so that they don't exceed tD}he left/right header/footer margins[3].- If you have enough spare lines, you can set up the first line of the footnoteD} as a row of underscore characters, to separate the footnote from the body text. You might also want a blank line under the D}footnote, followed by running footer information such as page numbering.This is the footnote definition⵶____________D}____[1] The buffer size is still 256 characters. Check footnote size using block word/byte count.[2] AlternativelD}y, print footnote numbers in sub/superscript.[3] Excess characters aren't printed.㣛- Now tot up the number of lD}ines in the footnote. If this figure is more than the number of spare lines after the bottom margin less the footer offset, D}you will need to adjust the bottom margin and/or footer offset. For example, the default configuration is for a page length D}of 66 lines and a bottom margin of 61, with a footer offset of 2, leaving three lines for the footer. If your footnote is fiD}ve lines long, you might want to make the bottom margin 57 so that everything fits and the usual amount of blank space is lefD}t at the end of the page.- Use the Print Preview command to view the document on screen (if necessary advanciD}ng to the page you want with the key) to check the results before committing anything to paper.*Don't forget to uD}ndefine or re-define the footer somewhere on the next page, or else the footnote will print repeatedly.*Similarly, don'tD} forget you have adjusted the bottom margin.*Although this method of footnote preparation is extremely flexible, any majD}or document revisions are likely to necessitate corrective formatting[1]. However, this is still preferable to editing a fuD}lly formatted document to which footnotes have been appended.Remember you can use any stage 2 formatting commands in your fD}ootnote definitions, including subscript, superscript and customised printer driver styles such as condensed print. If you dD}o print out the footnote in a different print pitch, remember to alter the header/footer margins and keep the total number ofD} characters below 256.That's about all there is to printing footnotes with THELASTWORDv3.0. If you use footnotes a lot,D} you might like want to write some macros to automate some of the procedures outlined above.Jonathan HallidaySecond fooD}tnote⵸________________[1] I suggest using the find command to skip between footnote definitions by searching fD}or square brackets.㣛__[1] I suggest using the find command to skip between footnote definitions by searching fD**** &/ |&D@*xԭӪ)Ӭ `X #Not an XL/XE computer`H}ԌX$W #MEMLO too high: remove extensions and re-run #Only compatible with "USE BANKED"A =S`@28H}n0+ !$jZ #Rerun with the "X" command #Not compatible with disk SpartaDOS өjLQ!L!S(%!H},*0$*%*b \ |&8n* $` #ȱ # #$ /%! ɛ $**8n**ȱ $XN*N*H}Mȱ ɛ*ЦN*PiB $8? L!Q8n*L! #The Last Word Ver 3.10 8 Nov 2009Usage: X LW [filelist] H}[/Q] [/X] [/M[macro_key]] [/Ppath] Q : Disable loading screen X : Ignore startup config files M : Disable startup mH}acro or run "macro_key" P : Set search path (must be last)Files in "filelist" will be loadedsequentially into availaH}ble buffers.Entries in "path" should beseparated by semicolons.L BHILV` ###`"/h#h#L#"H}/h#h# #S6 B VBD$E VBHI V B Vl K:D6 & ?$@$& 0ɛH}G*G*8n*L 8P xHө@"=)ɛ% $& ɛhө`X`&ɛ $H}ɛ , $G* 8n*G*`{a `SL%xԭHӭ@@@i@@i@3+H}爌2+ӽ@@hө"/ԩ`X2+`3+1+M"& )& H&8n0+` : &: &H}&׭D& `i&i & 8N&  & & 1+2+&&0$) JJM-1+MӬ2+3+2+ӭ1+I1+"H}/`3+ 2+`4+3+2+2+``GETENV T_ D)D`&&LWPATH=0+2+H} 09,*L0ЍЩЅ0 Y0  P0L+0 Y0 P0ۑ``@01H}"/ԩiຐ`?$&&$$$$ $x@$x@$8$8$8$8H}$888x8UP8 88UU@?|8`0~81_cpH}88`8 UQ9@8 @8_p88«8aUT0H}88*p8 UUp88*8x8p8H}p8xpw8 $  "08 %&QFP"1Ȁ8p9)hIh> $(8p8$)I'H}H"9$8$JI)H"I%%8x@I'Hw;8p@ 8p8 8 8H}8p8rx 8` c822R8pBR8Bs8H} 2B89`c8px 8088$8$8$8$8$8@$8@$x $xH}$$$$&&?$@p0B00pOШOH}p0B0A@㣩ûȌ`H}֪>www>>?w;?ww;<>nwwww88;ww?~||8x888|8p8|<|H}|||8pp||||~x8888@8|||H}|v8888||||v|pH}|88888v|8|||8888p8@XdDDDpp! $<$ pH}`8~H}8EDDD9Ѐ;@@K9DDH}DD9爏,D$qsa"""((EE@@,u!!!p008!!!> p,u!!!pQQH}1J!J1YHɉ  q8d!AA!;"!@@@@𐀂0Ϩ@AH}CEHIJKMNS`abcdefghijklmnopqrstuVYZ[\]^_TU>WX;H}<=vwxyz{|}~H}00,0,*0`򩤅򩤍`0 )lj;k+*opui-=vcbxz436521, .nH}m/reytwq907~8<>fhdȂgsaLJ:K\^OPUI_|VCBXZ$#&%"![ ]NM?REYTWQ()'@}FHDȃGSA {   H}` }ȄȏȐȤȣȥȍ݁ȅܔȩކȄ W`' ` >!0 %L]H} W`ɛ` ! `L G$ (" $0 ~$ G$ " i !LE! !LE! 0 G$H} ϥ` { G$ Ϥ2LE! G$ ϥ e !LE!L G$ 櫤` O NH}F```&` W G"0hhL` ' ` #i0 %L] W` ' z` "0 %L]L嬯ȌH} "` BDEIHI ` # h# $( # "L1#,``"0 &H}L1# J#%L" "` "ɛ`ȱ)$ ;$ Ȅ`VWXLH} ! `L G$ # $0 $ G$ ϥL#" G$ "L# G$$`H}ȱ") $ɀ ;$נ``Șe`-;) , ȹ, `X&iH}2i` %%`TMARGIBMARGILMARGIRMARGIPAGELEHFLEFTMARHFRIGHTMARSPACINHEADOFFOOTOFEOLCHAPADCHATEXTCOSCREH}ENCOPROMPTCOBORDERCOKEYDELAKEYREPEATABWIDTFILESORPAGEWIDT80COLUMNPAGEWAIWORDWRAINSERCASESENCAPSLOCKEYCLICSIONOH}ISATTRACWILDCARDDOCMODSDXDIWARNINGFILEEXDRIVFILESPEăƒ\ÃŃH}]ONOFFUNDERLINITALIBOLSUPERSCRIPSUBSCRIPINTERNATIONACRLINICODSTYL 0@РPAbortedTimeoutDisk fullH}Bad nameNot foundInvalid fileConfig error: Bad marginPaste full: Bad parameterCan't includeMemory full*.*H}P:*MACFNTCFGPDR*F80BLKPRNEXTSYS''' ''' ''''''#''SaveWritePrintSave CFGLoadMergeConfigMacroI}sDriverFontFontViewRuna@N"!@?4.+' F`' 8f`H)hJJJ=` {I}- pec Srt vail ^nag dir mt ^iew ^opy ^el ^en nock EitF`HI`DE`I`Iۍ`I}$p0=QȄ  4 ȥ L(` {Colours: ^ext ^creen ^rompt ^ordeI}r X Kɛ2݁0΍))) *)+)0L]썻 L],0 {%3s free sectors)I}` /BDEHI 0<))),0).).) {%e bytes free`))L))jz *JکjI}:ʴZz *ѣ׳ZYV B IBDE JLE:  pppBB:BI}BBJBڤBjBBBBB:BʯBZBBzB BB*BJBڽBjApppOjOOOzO OI}O*OOJOکOjOOOOO:OʴOZI}OOzO OO*AS "Ra"6|k<ɱʕɧn3ȁݥwHeYޟB4"I }#R̚b(͡P 48(樉ugmͩC\qb(έkN"R a"ݓ|I }Y(μrrP)))NNڗ֗pwwUnCLLߕЕ,0I }#)q!.k } { `^\_|~ۮ݆I }ޙ.A TCO<>,.SD~FULVRM-=+*XZ0 lx~'d  I }CAPNTSPB@ ,@*.*= FB FP  D:TI}XTD:*.*DOC<0PHLS P;I} L,lHHHHHHHHӍ^ Ӎl"HHHӍ^ lh^h@67`Ѝ{Mh@L υI}` υ@``H[ EO%NЭEO%Nh@HӍ h VH(h` *i`0 L* BL񅭱I}67,h  EF \` ƅx  2 A0`X l ؅𭣄i򭣄i_I}Ihmm)gI) `ei  m`))I} Ս V υb V  VԢ) ȱȱeȥ` ! Ս υbI}  Ԣ) ȱȱ8ȥ` )i@)i`,\ L? L!$0I}漥(!`,\ќ漥P` `$0ᑜݩީߥJ )e)i)ޤ)ߘ)I})ݩЈ) .Ј .ЈψЈ ЈE%݅ JJJJL򈥄 % ƦLEi惠(Px(PxI} SL]兎ɱ O Q٥` `Ŋʼn r``䥌`) 򥊅 ͟ ͉ T)I} 8`   ͉0 B m`-,0 쌄 mF`,Ãɟ:8`eeŊI}ʼn  `Н(Л {FindӢ ) f 4 ` {Change to󢄬 )I}'ͥ8팄  `8퍄  ̍ɟ ,Ã(葋8n0F j0 f` {NotI} found hL<`$0 ,p 8f05,0LL= #ũDžȅ$ SL]  7 8n$  I} Lm`L婀 j o / ]L@CɛSEAک@L!;ɡɻi@`a{8@`a{I}8 `ӄ,0 ㋙N` L]  Bũ {%d replacements`$$` {hange, ll, to nd, kip?`I} {Replaced %d`ѣP )ӭ)@荊FNd 8f T Ω ?,N LťII`I} 6Ϲ Jϙ`HINO 挹 6ϙ JIO`}~ 挹I }~`8ee͍褄 Í`H卥 h`8fI!} ! 挹$0 4L O!`H)h)` i@ `H)h)` @@i `$0 'I"}0)b H hLc H hcb !ۑ^Ͳ5^JJ8 e88I#}^$͘ L.F '  6]񭴃uv$iFa8uvI$}򥯅#u8岅v峅葉88fI󥞅>첃,ʽ ) 򮲃I%}Ze􅞥iLeʼn+eiŊ   =$I&}9͓͒+$98e L8e柬Eۙm^$0y I'}6^ 6^9 L ^LjbLj 8fL I(}E 6  L$0 8f``7838uv 葄e78F`I)}̲, ) 󬲃`ei` $ i 6` 6`ѣ`FI*}` 4M^ML ۙ8fhihi ֒ l`i`\ VWXV\` `ȘeI+}e`RS^`)%LN H)^h) 88)HPHʊ AH@H`CSBDEPVq o L I,}\\ oSS` 򪈱L oSS`\ QS8\Q o` ,_0RSS8RI-}RS S o,_S S8R `N\R씍Y픍Z[ @8n\V m`]V8YHWZHX[I.}XhWhVhhi00,\8n\]Ȍ]R`N_ Q)- 8n_ )0Q S`T)80$ \TTTI/}TmTm\T ӭT` d'@BM `M `VWX  4eeI0}e`L~  (溩 ULL饎m`LLI1} VĐ  ^,J` V  Lɕ/Ɛ8턄ƏŴ88턄ƓN`I2} VLɕĐ. maim擈N`  Lɕ  VLɕ&`,rILB I3}{Spec jLإDE`@ J(LL $  . `8` :` X F`) `I4}`NEDSOɹ``8fF`0 'Ȅɐ ȹ:I5} Lvߠ` N𭢄0") 淥mL`1 $ DF$0 VFI6}ƺ ɕ`8` =I_LMƷLM` ۙ Dž`0ȩ:ȩ`B R( J(L$I7}08ܤ8f JL &?` &?NP . `H&&&eI8}ehe`=Ȅ {v%b.%02b. %b banks, O0 lowL banked RAM, %b reserved.R`>\<`N)I9}Y™ [ ] [,]? /H ۙhY` 虩 Ĕ` )`$0% ՍF` I:}  ,OS44l`ȹ`ȹ`,h ɚÍ #ɚF"EI;} \өGH` ɟ(HG Gȭ ҙIhh@GHhLЭЭ,h81GHHG H II<}LD,0MGHL_ѣC}GƟe i͟⅟`8e`3(4'4M38I=}`쟄L 葘eiʼn劰 v©b` r78` r` ` I>}`楍 r`9卅 ` r` r`` `9č  `` ͟8`I?}ƊƉƌƋ屉ۑ` G,p0ƍ` ƈ9` 29:9uv7878cǥ8`I@}屋挩ۑ` ,p0捤9` Ͳ`Ȅ` ^¢:9 L`uvLruIA}v`789muuv4M(43(3b` f F祋8婅媅 8`񅌭5e5IB}6e6 L6é` f F祋ee8勅包8`ee58婍56媍6 ĥ8n0`$LIC} r, L °`򥌅 >°i 0 r` 0 r` Bĥ! r: >° r  rLK ID} Kcb`  `L 0 ` 0 LB >°  r` r``  `  `  ` IE} LBĩ3I0 {Wrap OffL {Wrap OnL`ѣ~GR ĉ劐`8` ~İ#8婝媝ĉ劰IF}` ~İee` {Goto [-] 0Ű< BFL]L {Bookmark [-] 0Ű L] /IG}5 81 `8`ʼn劰 TLať `[/ 1 ~010` IH} \ |\P^La_H`S(^&a_$`~ D/ FFFFFNq a II}i NiL@ OLVƩ ? ?N5,0 ,108n1 ] bũۍfep$ ͩ$0$FFI j8IJ}"/,0 w[ *$$  w8n0/# LVƩ$$? ǐ LV LD$$$0ŢIK} ] $$Lƭ0BŮݨ3$0,0 DʰLVƦ$+LVʊ HUHCHBH`$0 G LVF$FIL}F8n0,0 ° 49 `)`ɛɠ` {Help [-] /0$: ȹ*ș `8fIM} `L]D:LW .HLP ʰC 5I8nLOU@LLRLNH8f`VFF`A,/ 0C,00LIN}S $`M$`XN0`B0 :K81FLΩ UL΢ ʰ ɛ`F ^^ {%s` ʰ8f`F IO}Ȱ8f  ɥ ($0  Dʐ +L3L] ]L ʰ7  Dʰ.`ҥȥȄ`F XLFIP} X ]8f`8f`LL] ȩɩ WL MFɄ 6Ϡ 4ɐ J ]$0M`$$0L {Macro XF DIQ}ʐL F ř ]YfF`$0LɭLyɥ 6FFxy ʰ J8` ʰɽ 8f J`IR}`Ś` ʐ` J8` 6Ϡɽ J `FN{FF㭏TUҍ}`F8f @$0+ {Delete ord, ine, entence, aragraIS}ph?F۩p j /ɛW LNL LNS LNPJ $ F ͥL ̥ee L pIT} FLL] ˩ă 'F` {Delete ř ̰ FFL]F祰IU}$ °LIFL@` {Paste empty`` ̰ ̰ FF mL ̥eeeIV}e-L0 ̰% ̰ mL̥ {Copied```ʼn` rŲų`$)Ů寰! IW} %d bytes max8``8剅劅8嬅孅` 'EEF`, °9IX} Ͳ '`$0𭟄56 𥳅񥮦 挥` Ω !F C0$0 8fF n , %d wIY}ords in %d bytes8f`568ퟄ ۙ %d:%d` 𥌅` C 8n0IZ}`𥌅 bLfΎg$ b`㢋婴ߩ[ `)`=w Ϣw`J8\ ΐLTF LI[}]-<` FF @?LfLf,O HH= hh(`,0,O HHT hh`$0FjPI\}$LՍ` {80 Columns řP2Y( {Width = L]3\ a \LŠI]} 80 "`p;pHXԭH)өC ehh( ѣ`pCuJ-:&ȱeɅɪI^}ʈȱ`ɩ@ Q ϥ``H bh완 G'iG'i  {%p : ؤ`I_}D +','*.𙝃  p j 8nf ]` G  V`؅ɩ P8I`}I 4$ɰI ȥ$ LX۩ɥɅم8f ح^8弨 $0Y,0TݛGʊ HnHHH`Ia}}~ ڗڌڻڪڇ{?fڧɥP$ )F ۥŪ$P0: ڊٙLo$ $08f8f` 6 Ib}Ɇİ$ OP JLb$p" ۠ȹ 'ɹɆ`$p ۢ`$p ܄F`FL F8L Ic}$$08f` ʩəhh ۙ`hh`F`Fɰ`F`F ک `F`FɅ` `ɰId}ɐ`$0`ɄF`ұ`$0? ʰũ` +L< Lw۩ wL9F`$0`ƩMIe} ZܥLA\#ɜ)?썴퍵쭟@Ll(  L l(`L$0 $0 $0 0 ¢I} DE B 0L%8H9IH` ǥ` vw` 8` LL;,m08nm`mn$#I}8fɁɎɿ ɍ L1丐τLe8 ԅ N I$0E o,o084 {Insert paper, press a key I} X ݥF LN  3 Ԅ`8ը+ʠ`ń q8Oˠ ÄȱĄI}iƄÄĄ *津ńÄmƄÄĄL LLѣCY_*đeʹ `eI}䑐`0ƐȄ`=$093Fͬ#đđ 8f CL$0`ee`HHI}ǍVȍWX h 4 hLF$0ƅ _ 簸LL򭫄Ɂ. ɃI} ?L ɿ ɁɎ 搥ͬķ  ӹ0ƐέđL2Ɏɀ0 r$I}JJ8Ӑ C8eLб r8吐ՠ1-$0"Ӱ JJ8 CLm٠ C I}$0 LЩ ` r2 Lͤ2 C2``{i 2Ȣ LI}`{@ [8@Lɀ. rɚr8鐐m iPLݖ rL OL ʊ DŽIDŽ)0iLI} i8 tđL`L BDEHIL 8n` `I}$Lđƹ L򬨄 L津8 e L` V$0 $0LI}đɚ 8鐐 "L` %d P` $$$0p 8ƿ0` {Page %d` F۬I} ;Ԍ 򬲄Ȅ , Line %b of %bL襉8ퟄDŽ /􍧄ȅčvw̍3+ș3+I} 3+ȩi++iș+i33iș3Ǎ :  ?օׅ8֍` L` 8`8I}`ww`vw`8`P L e8፫` 8L ``8`L`I}0"`Րڰװ հ`L8፫` 8օ8夐̅8复`iL? ɦH+h I}ɨH3h`ѣ_Df p  ޥ oNeLL]8nFN 6 BN 6ϩ b ɕ8n Xۥ $ '0 :I} ?Lʊ HHHH` {Sort ame xt ate ize Nne /Y0,^ƒL O  6`L' ɖ I}0LL] ɖ 0LBL =L N J a ۙJ c j8f hh`L'  {Rename GLȹ  I} Ʃ,ȹ vL טL 8f {Delete all řF ] X$ {Delete %s ř8 {DelI}eting %s = ,+! v03 N 8fЦОL' =󭙃 v0NLBL ,r.\<I} {Mkdir *ж {Format řL Н)$ v0L' #  {Copy ܦ0׽ 'I}ɐ ɹ 6 L =L ~Lȹ g {Copying %s Ș 0VF8剅I}劅 OϢ ޖ J(B * ޖ  B 0$ L 6L' 6L` ȄI} L,0Eđ B! %20c, %20cLm,I}(e^L`,0E )* p) :p %-1s%-1s %-8s.%-3s %-3s   `  Ȣ.%I} %-1s%-8s.%-3s ...  ) L %6e  %2b-%02b-%02b %02b:%02b `ahp 4 I}^^ ` N D aϠP(a^(Na&,r0C0B R(I}iHiI  L ɛP>ȢȽ,K O 6` {Reading %s j ,0!I}B R( > D`ѣEfjB R( J( L)а L+ )0r*芠ȹI} :   ɛ ͉  K L % D I8fL'd8dI}  ` ƒ`F𭢄mi I}Hh$0ƒ uxLWN`8f0F =  `L' ~0ѩ 8fNF yI} W0,ɛ(^$ʽ )-QX J$ 03 yL I}$0(L$H hL % L {Press a key w  ` ` {I}[More] LݥɅɛ 4 륦^ ``ͯD `HI`,08nI},,`莯`ƷƑŐL8吪mmiLe (I}>.* ?((* ?( ( ` >&?ю`F`$0$0\ I}`,&$PTQ l(쭵8nn8`Ŋʼn 쥌РЬ WL)@ % l(Lt 4ͦ`p;pI}HXԭH)өC؅' ehh( ѣ`pC6I7E e7C eLI}  HD(B@DDP$BBBB$DD @HHdN$B,nĤHDJDDDDD FF J"DI}DjƨȨΨȊ䤤**,*JꪤĪʊƨ¢JJJJNJJD$DDBB"&@@I}(D*jf쨮jj$@DDNjĄ f@F JDD DnDDDʮH"ff@ADDDNDI}BB@ BFJFʨ $jd DJFB ̤HJLJJJNNJĪƪƂƨ@JJJ&JJ *J@NLJBB@I}@(ll(fffffff>`<|fl0fF68of;p88pf< 80 0 ~~`I}0 0```nf>ff~fff~~f<flxxlf`````~cwkcI}cfv~~nff>0fff>6lvv~n ~`|`~<``<06<>f>f f>f>0<>f>f>``|ff|<```<>ff>>ff>|``|fff8<<``lxlf8I}<fkc|ffffff>|f```>`<|~ffff>fff<ck>6f< x~ 0~ffI}өAn`X Q,* ȹG*׃*P8fέ* ˭N*S)r h,* ѣ ˢI} Pi,O0 SR]2+NO=փŃ2+3+=?===8RR===  =S  S Q I} CF,*0  ѣL ,iL ѣ ˢ G" iL ѣ ˢ !\ ѣ ˢ\ @F ѣ ˢ\ @0S ˢ J }This is a non-printing comment line.This is also a comment, but it's multi-line andcan include carriage returns.Print dM}emonstration file forThe Last Word 3.1To preview this demo file, load it into the editor and press . Pause the lM}isting with .To print this demo, which only takes one sheet, get your printer ready, then press , theM}n .This is a comment. All text between two inverse asterisks will be ignored during printing. The header definitiM}on which follows adjusts the header offset so that the header prints just 1 line below the top of the page.This is linM}e 1 (centred) of a 3 part headerThis is line 2, edged rightThis is line 3with all 3alignmentsThe next line creates aM} running footer with a centred page number㣛THE LAST WORDVersion 1.0Demonstration fileThis paragraph has M}the left and right margins indented by 10 spaces. The indents are cancelled when the end of the paragraph is reached.The nM}ext command shows how to clear the running header, so it won't print on successive pages.蛛曾HANGING INDENT: TM}his paragraph shows how easy it is to create a hanging indent with The Last Word. The left margin has been indented by 20 coM}lumns, but the first line has been outdented by the same number with the margin release command, so that it lines up with theM} original left margin. Full justification has been turned on to show how it does not affect the outdented part of the first M}line. The next paragraph will show a slightly different kind of title outdent.PRINT STYLING: This double-spaced paragrM}aph includes doublestrike text, underlined text, italic text, as well as superscripts and subscripts. These featurM}es will only print out if your printer supports them, and you have the appropriate printer driver loaded.back to single-spaM}cingAs well as full justification, LW can centre or right-justify all your text, not just individual lines. CurrentM}ly, centring is switched on......Now, right-justification is switched on. You can see how all the lines of text are fluM}sh with the right margin. Things will stay this way until the justification is changed.LW also handles hard and soft hyM}phens. This disproportionately long word contains a soft hyphen. You can see how LW broke it at the hyphen, making this fuM}lly-justified paragraph look much neater. This disproportionately long word also contains a soft hyphen, but it didn't fallM} at the end of a line, so the hyphen didn't print.LW will break lines on normal hyphens, so that "Fully-Jusitified" doesn'tM} cause the line it's on to be too short. If you don't want a phrase split on the hyphen, use a "HardHyphen" like this.sn'tLyThe Last Word 3.1 UpdateWhat's New & ChangelogThe 3.1 update comes hot on the heels of the 3.0 release, following a revQ}amp of the screen update code which has resulted in a considerable increase in editing speed and responsiveness. A couple of Q}critical bugs were also discovered in the macro processor. Specifically, the following bug fixes/changes have been made in LWQ} 3.1:1. The screen refresh has been rewritten (see below).2. The command now acts upon any filemask the usQ}er enters (as well as the drive and path). Previously, even if you typed "D8:*.TXT", the program would catalogue "D8:*.*".3Q}. Following the use of the the disk menu as a file selector, the filespec is reset to "*.*" (or whatever the user specified wQ}The Last Word 3.01 Startup Macro@Press for menu#eadme, hat's New, xplore disk, RWE README.TXT/Pn}ith the FILESPEC command in the CFG file). This means the command won't come up with "D:*.FNT" if the last thiQ}ng you did was load a font with the file selector.4. The macro confim command now works. Because of a fatalQ} bug, this command would never execute in LW 3.0! Whoops...5. LW 3.1 bank switches the macro buffer properly. There were seQ}veral nasty bank switching bugs in 3.0 which would result in random macro execution, text buffer corruption and other such deQ}; Sample configuration file for LW 3.1;; This CFG file simply sets the disk directory to sort by extension.;TMARGIN 5BMA}lights.6. Extensions are now version tagged and checked against the program version before they will load. This ensures extQ}ensions which belong to different versions of the program cannot be executed.7. The invert/restore selected text commands (Q}) now work properly. I was blaming the emulator's keymapping for problems with 5. Alphabetic Q}macro identifiers (the character a macro is attached to) are now case insensitive. This is also true of keys captured with thQ}e macro menu command. This change saves having to define helper macros to call the target if the keyboard isn't in the expectQ}ed case.8. Print preview, when called in 40 column mode, now displays in 80 columns. The 40 column print preview of LW 3.0 Q}was not a design feature: it was a bug.9. When print preview is interrupted with Reset, the display now returns to the modeQ} it was originally in.10. The directory sort command no longer resets the file selector to the first file in the list.11.Q} The maximum capacity of the un-banked macro buffer is now 768 bytes (it's 4K if using an extended bank).12. The extension Q}buffer has moved from $3300 to $3400. Extensions can be a maximum of 3K in length (although they may load code into a RESERVEQ}D bank), providing sufficient pages of RAM above $3400 have been allocated with the EXTPAGES instruction in LW.SYS.13. The Q}editor now wraps lines on hard and soft hyphens (see below).14. The cursor keys now work properly on the input line if the Q}keyboard is in reverse video.15. The status line text on the print preview screen is now the correct colour when using alteQ}rnative colour schemes.New features1. The rename command on the disk menu now works on tagged files. will rename theQ} file under the cursor as before, but will now rename a tagged group of files. This useful feature takes up no extraQ} memory and was a real ommission from version 3.0, I think. You still can't lock and unlock a group of files, but there was nR}o room to do that. I believe batch renaming is a much more useful feature.2. The editor now wraps lines on soft hyphens as R}well as normal hyphens. This is really just a cosmetic change, but it will certainly help when formatting text. The file viewR} command will wrap on the hypens in just the same way.3. Comments are now allowed in LW.SYS and CFG config files. Anything R}preceded by a semicolon on a line is ignored. Note that in the case of config (CFG) files, saving the configuration over itseR}lf from the editor (with ) will destroy any comments.4. LW will no longer ask if you wish to save changes to R}an empty, unnamed buffer.5. The "Press a key" prompt following a print operation is now taken from the running macro. This R}means the "Copies" macro will print multiple copies of a document without any intervention from the user (unless page wait isR} enabled).6. If page wait is enabled, the print formatter will only pause between pages during an actual print operation (nR}ot during print to disk, and not during print preview as was previously the case).7. Last but not least, the screen refreshR } routine in the editor has been reworked, making it about twice as fast as before when scrolling and entering text. Screen reR }freshes are now confined to only two lines (the current and "previous" line) where possible, saving a massive amount of proceR }ssing time. If you open a blank document and hold down a key, you'll appreciate the fact that text entry in LW 3.1 is about tR }wice as fast as it was in version 3.0. The keyboard buffer takes care of slow-downs when wrapping lines in long paragraphs orR%} ѣ ˢ*8f Z Fi (=TT ܩ78TT,i0P*E* Φ*J#}RGIN 61LMARGIN 10RMARGIN 70PAGELEN 66HFLEFTMARG 10HFRIGHTMARG 70SPACING 1HEADOFF 2FOOTOFF 2EOLCHAR 219PADCHAR 0TEX}TCOL 10SCREENCOL 148PROMPTCOL 10BORDERCOL 0KEYDELAY 30KEYREPEAT 3TABWIDTH 5FILESORT 2PAGEWIDTH 8080COLUMNS ONPAGEWA}IT OFFWORDWRAP ONINSERT ONCASESENS OFFCAPSLOCK OFFKEYCLICK ONSIONOISE ONATTRACT ONWILDCARDS ONDOCMODE OFFSDXDIR OFF}The Last Word 3.1Quick Start GuideLoading The Last Word 3.1 is easy. If you've booted the distribution disk, the prograV}m will load automatically. Otherwise, just load "LW.EXE" with option "L" (Binary Load) on the DOS 2.5 or MyDOS menu. SpartaDOV}S X users should load LW with the "X" command, i.e.:X LW.EXE(It's also possible to configure the most recent SpartaDOS X VP}; Sample LW.SYS file;; We don't need to use the BANKED ON command with DOS 2.5, MyDOS or SDX; since use of extended RAM isb}LW 3.1 Distribution Disk Contents MACRO .F80 - Font files MACRO .FNT SQUARE .F80 SQUARE .FNT LW1 .HLP f}- Help files LW0 .HLP LW2 .HLP LW3 .HLP LW4 .HLP LW5 .HLP LW6 .HLP LW7 .HLP LW8 f} .HLP LW9 .HLP LW .EXE - The Last Word 3.01 executable LWSPARTA.SYS - Sample configuration files LW f} .SYS OTHERDOS.SYS LW .CFG BULLET .MAC - Sample macros (read comments in files for details) CLEARALL.MAC COPf}IES .MAC CUT .MAC EASYCTRL.MAC ENV .MAC FILECOPY.MAC FONTSET .MAC INDENT .MAC LETTER .MAC LINKTESTf}8<<  B JKIHiDiELV`L8 8 BLV`Lxj}8t8l Lu8hihiHHȱȱL8c !#3`Lu8JJJJ`H 8h`Hj}ȩh Q8L8 Z8L8 8L8 8L8 8L8S:@9E:E9H '9 H9I9 8 '9h)0ICj}9D9L8 L :::: :Lr:::IEL[::i:iIIL[:`:i::ij}::L:`L{:w:w: C`L:L: D8:MEM.SAV: 8| 9 '9`L:L: D:DUP.SYS:̩ 8j } x:ɀL: '9`88 |9Y:X: '9L); D8:DUP.SYS; 8::88 9 '98? :`;WL`; 9j!}Ln; ` :Y;Y;L;L;)} Setting Up ATARI 130XE Ram Disk; 9L; ; -9  j"} L;D8:; :9 :Y;L.?COPIES.MAC: Prin,}t multiple copiespppppppppp&Number of copies (-)?1Finishe-}d copy #1h/2Finished copy #2h/3Finished copy #3h/4Finished copy #4h/5Finished copy #5h/6Fi.}nished copy #6h/7Finished copy #7h/8Finished copy #8h/9Finished copy #9h/0Finished copy #10h/#/}&hed copy #6h/7Finished copy #7h/8Finished copy #8h/9Finished copy #9h/0Finished copy #10h/#Cut block to external buffer?CUT.MAC: Cut block to file&mCut toh~y vLWNo text selected!hLWuThis macro maps the alpha control characters to so there's no need to press before entering an inter7}otext: oad ave dd elete se Eit@Load libraryLuLoad Autotext2 bNo name typed콻Save librarySuS3}ave Autotext2bNo name typed󽻽Add entryA?Name2Replace existing entry ~yb4}Nothing typedύIf not found潺  bIf no to replacebDelete entryD?Delete2 5}~ybIf no end markerŽ~ybIf nothing typed佻If not foundĽbEntry not foundUse entryU?Use26} bIf no end markerbIf nothing typedIf not foundսbEntry not foundXbLW#&e2qnational character.?EASYCTRL.MAC: Easy control charactersabcdefghi j k l m nopD}Envelope Addressing MacroSelect the recipient's address, then run this macro with an envelope in the printer.?ENV.MAC: 9}Envelope addressing macro&mhi1Ⲱ첰p Loop to print envelopesppPrint another copyp Rest:}ore document to its original conditionhl 1v Error if no text was selectedNo text selected!h;} Reset edited text flag and return to main macrox1v Error if no text was selectedNo text selected!h5Create (hanging) indent?INDENT.MAC: Create indents&1Indent byh 1vHanging indent훘NsLetter template?LETTER.MAC: Letter Macro&>}Enter nameEnter house & streetEnter townEnter countyEnter postcodeEnter date?}Dear Enter salutation,nameEnter house & streetEnter townEnter countyEnter postcodeEnter dateThis macro simply loads a file and branches if the file resulted in a linked load.Press to run.# 콖File wasA} a linked loadly loads a file and branches if the file resulted in a linked load.Press to run.# 콖File wasxt selected!hist Macro#&&m122o 2 1⽾o FinishedNo te; LW.SYS file for use with extensions (extended RAM machines only); You MUST use this file in order to use the supplied extev}qrstuvwxyzy control charactersabcdefghi j k l m nop)This macro simply attempts to copy all the macro files on drive 1 to the RAMdisk (D8:).?MACRAM: Installs macros on RAMdisF}k&D1:*.MACD8:ts to copy all the macro files on drive 1 to the RAMdisk (D8:).?MACRAM: Installs macros on RAMdisNUMBER.MAC macro. It will renumber strings entered as .n with a following space. Enter this at the beginning of each item youH} want numbered. Load this macro, press START, and the numbers will be inserted up to the # 50.NOTE: Remove this header to fI}it this macro into an unbanked macro buffer.#уNumber headings 1..n  2. 3. 4. 5. 6J}. 7. 8. 9.10.11.12.13.14.15.16.17.18.19.2K}0.21.22.23.24.25.26.27.28.29.30.31.32.33.L}34.35.36.37.38.39.40.41.42.43.44.45.46.47.M}48.49.50.Numbering Complete9.40.41.42.43.44.45.46.47..r.There were quite a few updates which had to be left out of version 3.1, mainly because of space constraints, but I thinkRO} it was worth sacrificing everything that couldn't be included for the sake of the faster screen update alone. Not only is 80RT}versions so that it's not necessary to type the "X" command or the "EXE" extension. See the SDX manual for details).If you V^}Macro to swap current word with word to the right.&^\ ^^^qrstuvwxyz890=Save all edited banks.?SAVEALL.MAC: Saves all edited files&1234567890f}Macro to display # of words in current paragraph.&|_ | ||qrstuvwxyz890|9 column mode a lot faster, but 40 column mode really flies now. And since the disk menu is now such a full-featured file manaRU}gement program, I'm pleased it's now possible to perform batch renaming of files. This was another shortcoming of version 3.0RV} which was easy to put right.Hopefully this will be the last update release for LW 3.0. I think I've done as much as I can RW}with a program which will still run on a stock 800XL.After LW 3.0 was released, I was pleased to hear that so many people lRX}iked the program and that a few even used it regularly. The Last Word is very popular in Germany and Poland, and German languR}; Sample LW.SYS file for SpartaDOS X;; We don't need to explicitly enable use of banked RAM,; since it's automatic. In thiZZ}s file, we're just enabling; space for extensions and setting an example search path; which assumes you keep all your LW fiZ[}les in a folder called; "LW" on drive 1. If you'd rather have a 19K text buffer, just remove; the EXTPAGES command or changZ\}e the 4 to 0.;; Note that the EXTPAGES instruction has no effect if LW isn't storing; its buffers in banked RAM.;LWPATH Z]}D1:>LW> ; search pathEXTPAGES 4 ; allocate 4 pages (1K) for use by extension codeing; its buffers in banked RAM.;LWPATH XSuse a different DOS package, be sure that it doesn't occupy RAM under the Operating System, since The Last Word uses this memV_}ory region.SpartaDOS X ConfigurationLW is written to integrate with SpartaDOS X, and works best if the Operating SystemV`} is properly configured.MemoryIt's important to point out that SpartaDOS X must be configured to use banked memory in ordVa}er to run LW 3.1. If you have only 128K on your system (i.e. a stock 130XE), you MUST boot with a CONFIG.SYS containing the lVb}ine "USE BANKED". If you have more than 128K, however, SDX will automatically reside in banked memory, so the CONFIG.SYS fileVc} is not essential. In any case, it's impossible to use LW with SpartaDOS X on a 64K Atari (although LW can be used with DOS 2Vd}.5 and MyDOS on a stock 64K machine).The Keyboard BufferThe SDX keyboard buffer can be used with LW, although earlier verVe}sions buffer auto-repeated keys which - under LW - can cause the cursor to "run away" when scrolling through documents. The pVi}ca佚bؽAll Modified Files Savedited files&12345678905Macro to demonstrate conditional macro branching.Load macro and press .#aText has been savedEText not yh}et saved!EEcText has unsaved edits彖Edits have been savedess .#aText has been savedEText not yDroblem is less prevalent with LW 3.1 than with version 3.0, but better yet is the latest version of SDX, whose keyboard buffeVj}r doesn't buffer held down keys.If you switch the SDX keyboard buffer off before starting LW, the word processor will use iVk}ts own, built-in buffer.The Time/Date LineLW fully supports the SDX Time/Date line (TDLINE), although depending on which Vl}version of the DOS you are using, you may briefly see some "garbage" on the screen immediately before the title screen appearVm}s. This is a harmless cosmetic issue, and can be alleviated by disabling the loading screen with:X LW.EXE /QAlternativelyVn}, of course, you can do a TD OFF before starting LW.ExtensionsLW 3.1 is supplied with a number of extensions (with the eVo}xtender "EXT"). These are small programs which add functionality to LW and are loaded using . However, LW MUST be usiVp}ng banked memory (which it does by default if banked memory is available), otherwise the loading of extensions is disabled anVq}d will be ignored. Furthermore, it's necessary to allocate memory (taken from the main text buffer) for extension coVr}de, since by default no memory is reserved for extensions. The EXTPAGES command is used to accomplish this.So, in order to Vs}enable extensions, it's essential to make an LW.SYS file containing the necessary instructions available to LW when it loads.Vt} The LW.SYS file on the distribution disk is an example of a suitable configuration. It reads as follows:EXTPAGES 4 ; allocVu}ate 4 pages (1K) for extension codeThis LW.SYS file reserves 4 pages of main memory for use by extension code (providing thVv}ere is a free bank of extended memory on the system to enable LW to allocate its buffers from an extended bank; otherwise, EXVw}TPAGES has no effect because the main memory below the main text bank will already be used for other purposes). It's only necVx}essary to include the "BANKED ON" command when using an operating system other than DOS 2.5, MyDOS or SpartaDOS X, because LWVy} will automatically attempt to use extended memory under those DOSes.You can allocate a maximum of 12 pages for extensions Vz}with the EXTPAGES command; this would allow for a 3K extension buffer. None of the supplied extensions are longer than 1K, soV{} 4 pages are sufficient in this case.A related command is the RESERVE command, which is used to allocate banks of extended V|}RAM for use by extensions. There are currently no extensions which require extended memory. However, the facility is includedV}} for flexibility in the future.Jon HallidayNovember 2009hich require extended memory. However, the facility is includedT>ExtensionsTo use the extensions on the disk, make sure you have at least one bank of extended RAM available and that the s^}upplied LW.SYS is available on the disk. LW.SYS is necessary because it contains a command which takes 1K of memory from the ^}main text buffer to house the extension code. If you'd prefer to have the extra 1K of memory for text, just rename LW.SYS to ^}something else. If you do this, however, you'll no longer be able to use extensions.From the editor, load extensions with <^}CTRL+;>. Type the name of the extension, then press . Most extensions will autorun, but some simply install commands o^}n the and keys.For example, to sort a block of text, first select the text, then load the SORT.EXT ^}extension. Then press , and the selected text will be put into alphabetical order. sorts text in rever^}se-alpha order.The ICONS extension simply puts an icon bar on . Use the cursor keys to select a function, and to select or to leave the menu.The DIR extension autoruns on loading and will insert a disk directory with the^} filemask you specify into the text. The command is also placed onto the keystroke.The CALC extension is a calcula^}tor and supports brackets for precedence. The calculator is also invoked by .Resident extensions are replaced when^} another is loaded. Support is provided for extensions to the editor, print formatter, and disk menu. There are also hooks fo^}r system reset and uninstallation, so extensions can even patch the program code providing they "unpatch" the changes using t^}he unpatch hook when another extension is loaded.Any of the extensions can be made to auto-load by renaming them "LW.EXT". ^}For example, if you want to always have the icon bar on , just rename ICONS.EXT to LW.EXT. Remember you'll also have ^}to have the line "EXTPAGES 8" in LW.SYS for this to work.\:nsions;extpages 4 ; reserve 8 pages for extensionst5 automatic. However, it's included here; to demonstrate using extended RAM with unsupported DOS packages.;BANKED ON ; Forcb}e LW to use extended RAM (if available)BANKS 1,2,3,4 ; specify use of first four free banks of extended RAMLWPATH D8:;D1: ;b} search path - RAMdisk, followed by D1:EXTPAGES 4 ; allocate 4 pages (1K) for use by extension code;; to reserve an extendc2}WARNINGS ONFILEEXT TXTDRIVE D:FILESPEC *.*OCK OFFKEYCLICK ONSIONOISE ONATTRACT ONWILDCARDS ONDOCMODE OFFSDXDIR OFF/#׽ WHATSNEW.TXT/P#up Macro@Press for menu#eadme, hat's New, xplore disk, RWE README.TXT/Plage versions of the manual and software and a collection of Polish fonts are all in the pipeline.Anyway, I hope you enjoy tR}he 3.1 update. Happy writing!Best WishesJon Halliday8 November 2009re all in the pipeline.Anyway, I hope you enjoy tPJ47 4 4 {CalcɅ QL]7~7 4_7 H6Lc4L4 L4L7 4_7I7L7?7ڗ}7s7?7L7 5Lv4_77s77Lc47t7 L67L@47L7 d6]7^7 Result=%d]7` ژ}5'770_7`$6 5 G)A7 :00&&&&L5L5% 50Q1K&&LH50H:D:8040ڙ}&&&eee 5Ld5_7`L7`77s7 d6S7 d6 t6LH6 6LH6,ښ}Ff eeffff1 6LH6 6LH6  6LH6L7~7`7a7hhL6~7`~7ʎ~ڛ}7a7`7`ee`8`hhL7&*& `II`JJJJ)'7 6ڜ})'7 4 ` {Stack overflow`hh {Invalid expression`0123456789ABCDEF+-*/\()ڝ} overflow`hh {Invalid expression`0123456789ABCDEF+-*/\()4q4 4 4 {Insdir L]奋剅劅#DEBJK LLLx47 Q44OAOAS` J4,\0IBIڍJKLm5*}שO*+,Lm5 J4 m55…0 ,\0I J4K*5+4, 50 4H4H`#R̚ˁ5"uB}ݼkwޭ77 5 /+ 577* 577Ω7ɛ `577`и `5` J4 Q4 ]`} LՍ$`7 iiI豜I襜i( `~`~~}ww{wxw|>o>|>o}xcc@~@~pw@~c@~{cvgv{g>xop{zw~{II_^_vgj_>Iz_>{Ivjvs>g``sJmsI}I^N^fgT^IJRwIvjuy~^zw`zk`yy[[Bgf{~Yyz]wyvjw|~]~w@Jo@ssvQQf6sQsJU`sVj{~N]|~g`zw>`gd6[[}Bgv}Zgz^@gVj}r6^z}~wsJxsgd_N_fg~_&gJQ&_gVj|>m`}~w{z{|6[^[vgv[rz_r_j|m}~wggb[~[~gv}[zg@zoggv|s}~wgg@~@~`@~gpg~~~p`}gv|s}~wgg@~@~`@~gpg~~~p` 45 ,4(4 v5L婀5$0` {Sorting...Ųųee󥬅}F$ 15-ee 158$0LT5Ld5 G,50 :,50}ei8feL}4ei`8``F {Sorted!Lv5 {Line too l}ong!8n0FLei8feL}4ei`8``F {Sorted!Lv5 {Line too l.MAC LW .MAC MACRAM .MAC NUMBER .MAC PWCOUNT .MAC SAVEALL .MAC SAVETEST.MAC TEST .MAC WORDSWAP.MACf}The Last Word Design ObjectivesThe Last Word was conceived in the early Nineties as a replacement for TextPro as my own pr}imary text editor/word processor. TextPro - first released in the Eighties - was a very capable "Text Processor" based on Spe}edscript by Charles Brannon. TextPro's authors Mike Collins and Ronnie Riche added advanced features such as keyboard macros }and machine code extensions, and while TextPro underwent many revisions over the following decade or so and grew into an incr}easingly sophisticated program, much of Speedscript's underlying structure remained. Nevertheless, I regarded TextPro as the }most innovative word processor for the Atari 8-bit at the time. Ronnie Riche has since remarked that some of the design decis}ions made early in the program's life limited the extent in which TextPro could be developed in certain directions towards th}e end of its development cycle. The screen redraw routine inherited from Speedscript, the linear text buffer model, and the p}rogram's reliance on the CIO for parts of the interface were certainly limiting factors.When The Last Word was designed, a }"bottom up" approach was taken, in as much as the program was built around a simple but highly efficient non-linear text buff}er. Text, once loaded into the buffer, is immediately moved to the upper end of memory, and characters are pulled to the bott}om of the buffer one at a time as the insertion point moves forwards. When the insertion point moves back through memory, cha}racters are pushed back to the top of the buffer. This results in the free memory space in the buffer always being immediatel}y ahead of the cursor, and therefore no potentially slow block move operations are required when inserting characters. Two po}inters control this process. The POS variable points to the end of the text in the low area of the buffer (i.e. the cursor po}sition), while LINK points to the start of text in the upper area of the buffer. Inserting a character at POS simply decremen}ts LINK by one and places the character at the address now pointed to by LINK. Moving the cursor forward takes the character }at LINK, places it at POS, and increments both pointers. The overheads involved in setting up this system are comparatively s}mall and the model allows for some quite elegant and compact code.One complication of the non-linear text buffer is that th}e screen redraw routine must "skip over" the empty memory space between POS and LINK. In order to save on frequent comparison} operations in the screen redraw code, it was decided that the end of line character (ATASCII 155) would serve as a marker, o}ne being permanently placed at POS and another at the uppermost location of the text buffer. In this way, when the screen red}raw encounters code 155, it performs the calculations necessary to deduce whether it has reached the empty buffer space or th}e end of the text in memory. If neither of these conditions are true, the character is treated as a normal carriage return.}Word-wrap processing requires additional code which copes with the situation whereby a line wraps on a point before the "gap"} in the buffer, when the gap has already been crossed. Another consideration was text selection. Selected text was to be repr}esented as a highlighted (reverse video) block, spanning from the original mark point to the current cursor position, which c}ould be either ahead of or behind the start of the selected block. A system of counters was arrived at which is initialized b}efore the start of each redraw. One counter turns on text highlighting when it reaches zero, while the other turns it off if }the end of the selection is reached by the screen update. This, again, removes the requirement for cycle-consuming comparison}s.The final requirement was that the program should support up to 240 columns in a horizontally scrolling 40 column window }onto the document. This meant an intermediate line buffer was required to store a (word wrapped) line before the visible port}ion was written to the screen by means of a simple offset variable.Many optimisations were added to LW's screen management }routines once a working system was up and running. Since the program does not rely on the screen refresh routine in order to } AT1020 .PDR - Atari 1020 printer driver AT1025 .PDR - Atari 1025 printer driver AT1027 .PDR - Atari 1027 printer drf}iver AT1029 .PDR - Atari 1029 printer driver ATARI825.PDR - Atari 825 printer driver EPSON .PDR - Generic EPSON compf}establish the length of word-wrapped lines when navigating through the document (in order to preserve the layout of paragraph}s when scrolling backwards through the document), paragraph marks have to be searched for backwards in memory before the leng}ths of the lines in the paragraphs they terminate are worked out. To speed up this process, a small cache of line lengths is }used, so that text already traversed by scrolling forwards through the document need not be analysed again when travelling in} the opposite direction. Only when the cache is exhausted does the program have to reformat paragraphs behind the cursor.LW} 1.0 also included a ten line, 80 column print preview window which at the time shared memory with the disk menu's directory }buffer (since the two functions were mutually independent).Apart from efficient memory management, it was also decided from} the outset that The Last Word should be totally independent from the Operating System's display handler and floating point m}ath routines. This would allow for faster operation and the use of the entire upper half of page zero for program variables. }This meant fewer cycles per operation, as well as a reduction in overall code size by around 20% (compared to the same system }atible printer driver XDM121 .PDR - Atari XDM121 printer driver XMM801 .PDR - Atari XMM801 printer driver CALC .Ef}XT - Calculator extension DIR .EXT - Insert directory listings into the editor ICONS .EXT - Icon menu for common fuf}nctions SORT .EXT - Sort lines of text ADDINS .TXT - Instructions for using extensions CONTENTS.TXT - This file g3}UNDERLINE ON UNDERLINE OFF ITALIC ON ITALIC OFF BOLD ON BOLD OFF SUPERSCRIPT ON SUPERSCRIPT OFF SUBSCRIPT ON SUBSCRI}PT OFF INTERNATIONAL ON 27,23INTERNATIONAL OFF 27,24CRLF 155INIT 27,15STYLE 1 STYLE 2 STYLE 3 STYLE 4 STYLE 5 }STYLE 6 STYLE 7 STYLE 8 STYLE 9 STYLE 10 CODE 0,0CODE 1,1CODE 2,2CODE 3,3CODE 4,4CODE 5,5CODE 6,6CODE 7,7CO}DE 8,8CODE 9,9CODE 10,10CODE 11,11CODE 12,12CODE 13,13CODE 14,14CODE 15,15CODE 16,16CODE 17,17CODE 18,18CODE 19,19}CODE 20,20CODE 21,21CODE 22,22CODE 23,23CODE 24,24CODE 25,25CODE 26,26CODE 96 96CODE 123,1237CODE 18,18CODE 19,19fUNDERLINE ON UNDERLINE OFF ITALIC ON ITALIC OFF BOLD ON BOLD OFF SUPERSCRIPT ON SUPERSCRIPT OFF SUBSCRIPT ON SUBSCRI}PT OFF INTERNATIONAL ON 27,23INTERNATIONAL OFF 27,24CRLF 155INIT 27,15STYLE 1 STYLE 2 STYLE 3 STYLE 4 STYLE 5 }STYLE 6 STYLE 7 STYLE 8 STYLE 9 STYLE 10 CODE 0,0CODE 1,1CODE 2,2CODE 3,3CODE 4,4CODE 5,5CODE 6,6CODE 7,7CO}DE 8,8CODE 9,9CODE 10,10CODE 11,11CODE 12,12CODE 13,13CODE 14,14CODE 15,15CODE 16,16CODE 17,17CODE 18,18CODE 19,19}CODE 20,20CODE 21,21CODE 22,22CODE 23,23CODE 24,24CODE 25,25CODE 26,26CODE 96 96CODE 123,1237CODE 18,18CODE 19,19fUNDERLINE ON 15UNDERLINE OFF 14ITALIC ON ITALIC OFF BOLD ON BOLD OFF SUPERSCRIPT ON SUPERSCRIPT OFF SUBSCRIPT ON SUB}SCRIPT OFF INTERNATIONAL ON 27,23INTERNATIONAL OFF 27,24CRLF 155INIT STYLE 1 STYLE 2 STYLE 3 STYLE 4 STYLE 5 S}TYLE 6 STYLE 7 STYLE 8 STYLE 9 STYLE 10 CODE 0,0CODE 1,1CODE 2,2CODE 3,3CODE 4,4CODE 5,5CODE 6,6CODE 7,7COD}E 8,8CODE 9,9CODE 10,10CODE 11,11CODE 12,12CODE 13,13CODE 14,14CODE 15,15CODE 16,16CODE 17,17CODE 18,18CODE 19,19}CODE 20,20CODE 21,21CODE 22,22CODE 23,23CODE 24,24CODE 25,25CODE 26,26CODE 96 96CODE 123,1237CODE 18,18CODE 19,19eUNDERLINE ON UNDERLINE OFF ITALIC ON ITALIC OFF BOLD ON BOLD OFF SUPERSCRIPT ON SUPERSCRIPT OFF SUBSCRIPT ON SUBSCRI}PT OFF INTERNATIONAL ON 27,23INTERNATIONAL OFF 27,24CRLF 155INIT 27,15STYLE 1 27,14STYLE 2 27,15STYLE 3 STYLE 4 }STYLE 5 STYLE 6 STYLE 7 STYLE 8 STYLE 9 STYLE 10 CODE 0,0CODE 1,1CODE 2,2CODE 3,3CODE 4,4CODE 5,5CODE 6,6C}ODE 7,7CODE 8,8CODE 9,9CODE 10,10CODE 11,11CODE 12,12CODE 13,13CODE 14,14CODE 15,15CODE 16,16CODE 17,17CODE 18,18}CODE 19,19CODE 20,20CODE 21,21CODE 22,22CODE 23,23CODE 24,24CODE 25,25CODE 26,26CODE 96 96CODE 123,1237CODE 18,18pUNDERLINE ON 15UNDERLINE OFF 14ITALIC ON ITALIC OFF BOLD ON BOLD OFF SUPERSCRIPT ON 27,30SUPERSCRIPT OFF 27,28SUBSCRI}PT ON 27,28SUBSCRIPT OFF 27,30INTERNATIONAL ON 27,23INTERNATIONAL OFF 27,24CRLF 155INIT 27,19STYLE 1 27,15STYLE 2 27},14STYLE 3 STYLE 4 STYLE 5 STYLE 6 STYLE 7 STYLE 8 STYLE 9 STYLE 10 CODE 0,0CODE 1,1CODE 2,2CODE 3,3CODE} 4,4CODE 5,5CODE 6,6CODE 7,7CODE 8,8CODE 9,9CODE 10,10CODE 11,11CODE 12,12CODE 13,13CODE 14,14CODE 15,15CODE 16,1}6CODE 17,17CODE 18,18CODE 19,19CODE 20,20CODE 21,21CODE 22,22CODE 23,23CODE 24,24CODE 25,25CODE 26,26CODE 96 96CO}DE 123,1237CODE 18,18CODE 19,19CODE 20,20CODE 21,21CODE 22,22CODE 23,23CODE 24,24CODE 25,25CODE 26,26CODE 96 96CO UNDERLINE ON 27,45,49UNDERLINE OFF 27,45,48ITALIC ON 27,52ITALIC OFF 27,53BOLD ON 27,71BOLD OFF 27,72SUPERSCRIPT ON 27,}83,48SUPERSCRIPT OFF 27,84SUBSCRIPT ON 27,83,49SUBSCRIPT OFF 27,84INTERNATIONAL ON INTERNATIONAL OFF CRLF 155INIT 27,1}12,48,27,84,27,80,18STYLE 1 STYLE 2 STYLE 3 STYLE 4 STYLE 5 STYLE 6 STYLE 7 STYLE 8 STYLE 9 STYLE 10 COD}E 0,160CODE 1,151CODE 2,165CODE 3,144CODE 4,128CODE 5,147CODE 6,149CODE 7,141CODE 8,156CODE 9,139CODE 10,129CODE 1}1,132CODE 12,153CODE 13,126CODE 14,162CODE 15,153CODE 16,154CODE 17,131CODE 18,150CODE 19,140CODE 20,130CODE 21,138}CODE 22,164CODE 23,136CODE 24,134CODE 25,133CODE 26,143CODE 96 173CODE 123,142150CODE 19,140CODE 20,130CODE 21,138VUNDERLINE ON 15UNDERLINE OFF 14ITALIC ON ITALIC OFF BOLD ON 27,69BOLD OFF 27,70SUPERSCRIPT ON 27,30SUPERSCRIPT OFF 27,}28SUBSCRIPT ON 27,28SUBSCRIPT OFF 27,30INTERNATIONAL ON 27,23INTERNATIONAL OFF 27,24CRLF 155INIT 18,27,19,27,84,27,112,}0STYLE 1 STYLE 2 STYLE 3 STYLE 4 STYLE 5 STYLE 6 STYLE 7 STYLE 8 STYLE 9 STYLE 10 CODE 0,0CODE 1,1CODE} 2,2CODE 3,3CODE 4,4CODE 5,5CODE 6,6CODE 7,7CODE 8,8CODE 9,9CODE 10,10CODE 11,11CODE 12,12CODE 13,13CODE 14,14CO}DE 15,15CODE 16,16CODE 17,17CODE 18,18CODE 19,19CODE 20,20CODE 21,21CODE 22,22CODE 23,23CODE 24,24CODE 25,25CODE 2}6,26CODE 96 96CODE 123,1237CODE 18,18CODE 19,19CODE 20,20CODE 21,21CODE 22,22CODE 23,23CODE 24,24CODE 25,25CODE 2UNDERLINE ON 15UNDERLINE OFF 14ITALIC ON ITALIC OFF BOLD ON 27,71BOLD OFF 27,72SUPERSCRIPT ON 27,30SUPERSCRIPT OFF 27,}28SUBSCRIPT ON 27,28SUBSCRIPT OFF 27,30INTERNATIONAL ON 27,23INTERNATIONAL OFF 27,24CRLF 155INIT 18,27,19,27,84,27,112,}0STYLE 1 27,15STYLE 2 27,14STYLE 3 STYLE 4 STYLE 5 STYLE 6 STYLE 7 STYLE 8 STYLE 9 STYLE 10 CODE 0,0COD }E 1,1CODE 2,2CODE 3,3CODE 4,4CODE 5,5CODE 6,6CODE 7,7CODE 8,8CODE 9,9CODE 10,10CODE 11,11CODE 12,12CODE 13,13COD }E 14,14CODE 15,15CODE 16,16CODE 17,17CODE 18,18CODE 19,19CODE 20,20CODE 21,21CODE 22,22CODE 23,23CODE 24,24CODE 25 },25CODE 26,26CODE 96 96CODE 123,1237CODE 18,18CODE 19,19CODE 20,20CODE 21,21CODE 22,22CODE 23,23CODE 24,24CODE 25' using absolute addresses).When LW 1.0 was finished, was the fastest 40 column text editor I had ever used on the Atari8. I }n retrospect, it is comparable in speed to any commercial offering. The objective of constant, responsive editing speed regar}dless of cursor position or document size was achieved. Moreover, the program included a macro language based on that of Text}Pro, together with a disk menu (again, similar to the one seen in TextPro), and an 80 column print preview. LW also implement}ed the "Where's the cursor in the printed document" command first seen in TextPro. In 1999, The Last Word became my preferred} word processor on the Atari8, replacing TextPro and AtariWriter Plus (at the time I had never used The First XLEnt Word Proc}essor, Paperclip, or any other commercial word processor for the Atari).The Last Word 2.1, finished in 2001, was the last 4}0-column-only version. Although it included several new macro commands and support for machine code add-ins, it was functiona}lly similar to LW 1.0. Sadly, by the time the (unreleased) LW 2.1 was complete, the Atari8 was being gradually overshadowed b}y my Windows PC and I got little use out of the program for word processing tasks. Regardless of its shortcomings, TextPro ha}d fulfilled all of my word processing requirements for ten years (a creditable achievement for a free, non-commercial program}), as well as setting the benchmark for The Last Word's feature set.In late 2008, The Last Word 2.1 finally saw public rele}ase and became well-regarded word processor by a small group of online users. However, it seemed that the program was regarde}d as more of a work in progress than the finished product I presumed it to be. The most requested feature was an 80 column di}splay: something which had been attempted several times in the past with varying degrees of success. Reluctant at first, in J}anuary 2009 I eventually decided to attempt a software based 80 column display. The subsequent modifications to the program s}oon amounted to an almost complete re-write which took eight months to complete.Making 80 Columns WorkThe first task in i}mplementing an 80 column display in The Last Word was to get rid of all the direct writes to screen RAM. LW 2.1 used these ex}clusively, but some abstraction would clearly be required when dealing with bitmapped display RAM. It was also obvious that h}eavy optimisation would be required if the system were to be useable, since even using the tightest loops, the 6502 was unabl }e to map 1,600 80 column characters on the screen in less than a couple of seconds.One optimisation technique which was imm!}ediately applied was to maintain an ASCII buffer for each line of the twenty lines on the display. In this way, when an 80 co"}lumn cell was to be updated, a check could be performed to see if the relevant character had already been drawn at the releva#}nt location. If the character was already there, the entire 80 column mapping process for that cell could be skipped. It is t$}his single optimisation which makes the software 80 column display useable on the Atari8. Without it, there would be a delay %}of between one and two seconds between every keystroke. Needless to say, there are many occasions - such as when loading a ne&}w file or moving to the start or end of a document - when every character on the screen might change and need to be redrawn. '}However, this only happens a small percentage of the time; in the majority of cases, only a few dozen of the 1,600 possible c(}ells have changed following a keystroke.Such optimisations threw up several bugs which had to be handled by additional code)}. As well as referring to a table of line starting points, the refresh routine checks for any lines which have changed in len*}gth since the last screen redraw.While I belive the resulting program to include the fastest possible software driven 80 co+}lumn screen display, there are doubtless additional optimisations which could make things even faster. However, code space is,} at a premium: LW 3.1 is probably ranks among the tightest 6502 code ever written. When a new feature has been added, space t-}o house it has often been obtained from nowhere by shrinking down existing routines to gain a few free bytes.Writing LW has.} been an interesting challenge and has posed some fascinating software design problems. The next objective is to write a word/} processor which uses proportionally spaced fonts. This presents a range of new hurdles, and designing a screen update routin0}e efficient enough to be practical will be yet another difficult challenge.In the meantime, thanks for reading and I hope y1}ou enjoy using The Last Word 3.1.Jon Halliday8 November 2009hallenge.In the meantime, thanks for reading and I hope yBed bank for use by future extensions, include:; RESERVE n; where "n" is the number of extended banks to reservee an extend`rDESIGN .TXT - Discussion of LW design concepts FOOTNOTE.TXT - Footnote demonstration PRINTING.TXT - Print formatter demog4}nstration README .TXT - Quick start guide WHATSNEW.TXT - Changelog and bug fixes since release 3.0Print formatter demodionstration README .TXT - Quick start guide WHATSNEW.TXT - Changelog and bug fixes since release 3.0Print formatter demdjMacro to load both 40 and 80 column fonts.&Font setH.FNT.F80cckwff $(8p8$)I'H"9$8$JI)H"o:}I%%8x@I'Hw;8p@ 8p8 8 88p8ro;}x 8` c822R8pBR8Bs8 2B8o<}9`c8px 8088$8$8$8$8$8@$8@$x $x$$$$&&o=}?$@p0B00pOШOo>}p0B0A@㣩ûȌ`֪o?}>www>>?w;?ww;<>nwwww88;ww?~||8x888|8p8|<||||8ppo@}||||~x8888@8||||oA}v8888||||v|p|88888v|8oB}|||8888p8@XdDDDpp! $<$ p`oC}8~oD}8EDDD9Ѐ;@@K9DDDD9爏,D$oE}qsa"""((EE@@,u!!!p008!!!> p,u!!!pQQ1J!J1YHɉoF}  q8d!AA!;"!@@@@𐀂0Ϩ@ACEHIJKMNSoG}`abcdefghijklmnopqrstuVYZ[\]^_TU>WX;<=vwxyz{|}~oH}0oI}0,0,0`򩤅򩤍`0 )lj;k+*opui-=vcbxz436521, .nm/reytwq907~8<>fhdȂgsaLJoJ}:K\^OPUI_|VCBXZ$#&%"![ ]NM?REYTWQ()'@}FHDȃGSA {   ` }ȄoK}ȏȐȤȣȥȍ݁ȅܔȩކȄ l` ' ` >!0 L\ S`ɛoL}` ! `L G$ (" $0 z$ G$ " i !LE! !LE! 0 G$ Wإ` { G$oM} Wؤ2LE! G$ Wإ e !LE!L G$ W櫤` O NF```&`oN} l G"0hhL`' ` #d0 L\ l`' ` "0 L\L䬤Ȍ "` BDEIoO}HI ` # h# $( # "L1#,`g`"0&L1#oP} J#%L" "` "ɛ`ȱ)$ ;$ Ȅ`Lg ! `LoQ} G$ # $0 $ G$ WإL#" G$ "L# G$$`ȱ") $ɀoR} ;$נ``Șe`) , ȹ, `T&i2i` %%`TMARGIBMAoS}RGILMARGIRMARGIPAGELEHFLEFTMARHFRIGHTMARSPACINHEADOFFOOTOFEOLCHAPADCHATEXTCOSCREENCOPROMPTCOBORDERCOKEYDELAKEoT}YREPEATABWIDTFILESORPAGEWIDT80COLUMNPAGEWAIWORDWRAINSERCASESENCAPSLOCKEYCLICSIONOISATTRACWILDCARDDOCMODSDXDIWoU}ARNINGFILEEXDRIVFILESPEWXONOFFUNDERLINITALIBoV}OLSUPERSCRIPSUBSCRIPINTERNATIONACRLINICODSTYL 0@РPAbortedTimeoutDisk fullBad nameNot foundInvalid fioW}leConfig error: Bad marginPaste full: Bad parameterCan't includeMemory full*.*P:*MACFNTCFGPDR*F80BoX}LKPRNEXTSYS'''''''& ''''''SaveWritePrintSave CFGLoadMergeConfigMacrosDriverFontFontViewRungoY}EN"!EE4.+' F`' 8f`H)hJJJ=` ֒- pec Srt vail ^nag dir oZ}mt ^iew ^opy ^el ^en nock EitF`HI`DE`I`Iۍ`$p09MȄ ܒo[} sȥ sL(` ֒Colours: ^ext ^creen ^rompt ^order m Kɛ2}0o\}΍%)) &)')0L\썷 L\,0 ֒%3s free sectors)` /BDEHI o]}0<))),0).).) ֒%e bytes free`))L))jz *Jکj:ʴZz *ѣo^}׳yzVUR B 慎IBDE JLE:  pppBB:BʟBBJBڤBjBBBBB:o_}BʯBZBBzB BB*BJBڽBjApppOjOOOzO OO*OOJo`}OکOjOOOOO:OʴOZOOzO oa}OO*AS W a"}ΔϺvOɼ%ʠɲy"CȆݩo?ZQ4"K̑^(˹͖^ob}GK߽( 퉟gbͩC\q^(΢v˽W a" ݙU(}llL)oc}<,.SD~FULVRM-=+*XZ0 lx~'d  TSPB@ ,@of}*.*= FB FP  D:TXTD:*.*DOC80og}PHLS P/% L,lHHHyHHHHHoh}^ Ӎl"HH{HӍ^ lh^h@67`ЍwMh@L ąˍ` ą@``H oi}EO%NЭEO%Nh@HӍ h VH免(h` i`0 L BL慭67,c  XY \oj}` x  '' ( A0`X l ؅𭘄i򭘄i_Ihmok}m)gI) `HH  (h.h-)򅀭)󅁩 V ąbc ol}))))lbmci  Ȅ9ť !))FG`-H.H$  hom}h ! V ą !))FG充6$blcm8 ))))0on}L bc)) ` )i@)i`,W fL fL$0漥(!`,Wќ漥oo}P` f`$0ᑜݩީߥJ )e)i)ޤ)ߘ))ݩH) .H .HGH op}HE%݅ JJJJLj % ƦLi惠(Px(Px ˊL\兎ɱ Ў f٥`oq} `Ŋʼn r``䥌`) 򥊅 ͔ E ̉) 8`  or}E0 `-,0 Y숄 F`,ɟ:8`eeŊʼn  os}`Н(Л ֒FindǢ  މ  ` ֒Change to碄 'ͥ8툄ot}  `8퉄  ̉ɟ ,(葋8n0 뎬0 މ` ֒Not found LG`$0 ,p 8f05ou},0LL 1ũDžȅ$ ˊL\  $8n$    L`L䩀 뎩 ov} \LCɛSEAک@LH)h)!;!;i@ `H)h){a{a@ `DŽ,0 Yow}N`򥌅` L\  Pũ ֒%d replacements`$$` ֒hange, ll, to nd, kip?` ֒Replaced %dox}`ѣ& )ӭ)@荆FN_ 8f P Ω R,N LťII` g )Ϲoy} =ϙ`ɍʍύЍ g )ϙ =ʍЍ` g`oz}8eA@eDC褄 AD`Hfg ghg`8f go{}$0 L Ў`H)h)` i@ `H)h)` @@i `,/0 '0)] H ho|}L'^ H h^] ϩۑYͮ5YJJ8 e88Yp 'o}}  ]񭰃45$ga845񥮅򥯅#48岅5峅葉8o~}8fI󥞅PQ>쮃,ʽ ) 򮮃Ze􅞥iL3eʼn+eo}iŊ p  PRQSF,/APRQS5$H hPQo}8e fLvPQ8e柬EۙmY$0i Y Y8o} L$ ^L뎩]L뎥 }8n/L E  Lf$0 8f`o}`yz2845 Keyz`̮, `eio}`,/ i ` `ѣY` MML| 8fhihi 1 Bl`o}i` 򙱒̷` Șee``)%L 攠H)h) Gݓo})HHʊ HH`CSBDEPړ̓ ʒ LB 򍷒 ʒή` 򪈱Lޓ ʒ̮̮o}` 8 ʒ`  g,0ͮ8 g ʒ,̮ 8 `NRo}ST 8n Ȕg`8HHhhhhi00,8ngȌ`N o})- 8n )0 `)80$ mm ӭ`{a ` d'@Bo}M |`M ` gg eee`Lz o} 溩 LL饎m`LL ' Đ '  'Y,J` R o} R  ' L//Ɛ8퀄ƏŴ88퀄ƓN~` ' L/Đ. m\imo}擈N~` ' L/ ' L/&`,mIL< ֒Spec ٘L٥DE`@ F(L慩L o}$  . `8` :` m F` xLЎ) ``NEDSOɹ`o}`8fF`0 Ȅɐ ȹ: L~ߠ` N~o}0") 淥mLa`1 '$ F$0 Fƺ /`8` I_LƷLo}` m  Dž`0ȩ:ȩ`B N( F(L$08ܤ8f FL &?o}` &?NP . `H&&&eehe`9Ȅ ֒%b banks,o} using K0 ܒlowL ܒbanked ܒ, %b reservedN`>\<`N)Y$ ܒ [ ] ܒ [,]? H hY`  o} ,KO44l`ȹ`ȹ`,c ɚ֍ #ɛY"X \o}өZ[` ɟ(HZ Zȭ ҙ\hh@Z[hLЭЭ,c81Z[[Z [ \LWo},0MZ[L_ѣCGƟe i͔⅟`8e`2(3'3L28`o}씄LK Keiʼn劰 v©]` ryz` r` ` `o}楍 r`8卅 ` r` r`` `8č  `` ͔8`ƊƉo}ƌƋ屉ۑ` G,k0ƍ` ƈ8` 289845y8yz^ǥ8`屋o}挩ۑ` ,k0捤8` ͮ`Ȅ` ^¢98 CK`45Lr45o}`yz8m4453L(32(2]` މ F祋8婅媅 8`񅌭6e67e7o} L6é` މ F祋ee8勅包8`ee68婍67媍7 ĥ8n0`$L ro}, L °`򥌅 >°i 0 r` 0 r` Bĥ! r: >° r  rLK K^o}]`  `L 0 ` 0 LB >° Q r` Q r`` Q `  Q`  ` Q o}LB )`2I0 ֒Wrap OffL ֒Wrap OnL `ѣGR ĉ劐`8` İ#8婝媝ĉo}劰` İee` ֒Goto [-] >Ű< PFL\L ֒Bookmark [-] >Ű o}L\ 5 81 `8`ʼn劰 ̉Loť `/ 1{ z0{10{` ' o}(& | (Y| WPYL\ZH[S(Y&\Z$[z{ ą D/ Fo}FFFNl TϭY d NdLY LoƩ R RN,0 ,108n1 \ pŭ( ۍa`k$ ͩ%o}I 뎥8"/,0 [ *$$ z 8n0/# 'LoƩ$$? 'ǐ Lo Lo}O$$$0Ţݨ \ $$Lǭ0BŮݨ3$0,0 OʰLoƦ$+Loʊ HnHCHBH`$o}0 L LoFF8n0,0 ° 8 `)`ɛɠ` ֒Help [-] 0$: ȹ:șo} `8f `L\D:LW .HLP ʰC I8nLOU@LLRLNH8f`VA,/ 0C,0o}0LS $`M$`XN0`B0 :K81FLΩ QL΢ ʰ ɛ`F YY ֒%s` ʰ8fo}`F Ȱ8f ɥ ($0 Oʐ @L>L\ \L ʰ7 Oʰ.`ҥȥȄ`F mLo}F m \8f`8f`LL\ ȩɩ lL bFɄ )Ϡ ɐ = \$0M`$$0L ֒Macro mF o} OʐL F ' \YfF`$0LɭL )FFtu ʰ =8` ʰɽ 8f =``o}Ś` ʐ` =8` )Ϡɽ = `FNwFF㭋PQҍy`F8f 9$0+ ֒Delete ord, ine, entence, aragraph?Fo}k ɛW LOL LOS LOPH $ F ͥL ̥ee L g Lo}L\ ˩ '` ֒Delete ' ̰ FL\F祰" °o}L|IL9` ֒Paste empty`` ̰ ̰ F dL ̥eeeeo}-L ̰% ̰ dL̥ ֒Copied```ʼn` rŲų`$)Ů寰! ܒ%d byto}es max8``8剅劅8嬅孅` 'EE`, °8 ͮ 'o}`$0𭔄67 𥳅񥮦 g` Ω !F 80$0 8fF c ܒ, %d words in %d byteso}8f`678프 ܒ%d:%d` 𥌅` 8 x8n0`𥌅 WLxo}[Ύ\$ W`Y婩ߩ[ `)`9t Ϣt`J8\ ΐLPF L\-88I9:o}` F @?LމLމ,K HH9 hh(`,0,K HHP hh`$0Y8fL8,0  6ǥȐ sr`$8` RF $L F $0/ԭP $03|W0|(o}Y TϭY 嬜 LW \LoƩ l`' 8nj0QPMFF ֒Print to rinter, creen, isk? ɛP So}2DL\&Nj BJ OL L8fFNjW|8nWPY TϠ sP h( ą o}  쭔8fih $ Lf R hvLy $08f0[Ɂ& YɊbɅbɎo}ɿɍHɈVɁdL"溦膸͠Fʽɍ ,hƺ膻LF  L RL hɉ LiLȕCCo}L ʊ HHuHtH`Ր < H &  丰L,i0LJ$0+  썩퍪쭔@Lh( | L| h(`L|$0 $0 $0 0 ¢ o}DE B 0L8H9IH` ǥ` rs` 8` HL<,h08nh`hi$#8fo}ɁɎɿ ɍ L2丐τLf8 ԅ I D$0@ ,j084 ֒Insert paper, press a key m o}F L N  * Ԅ`8ը+ʠ` q8Oˠ ȱio} &津ͺmLLLѣ?Y_*đeʹ `eo}`0ƐȄ`=$093F͡#đđ 8f ?L$0`ee`HHǍȍo} ghg  hLF$0ƅ [ 簸LH򭠄Ɂ. YɃ RLo} ɿ ɁɎ 搥͡ķ  ӹ0Ɛ΢đL.Ɏɀ0 n$Jo}J8Ӑ ?8eLб n8吐ՠ1-$0"Ӱ JJ8 ?Li٠ ? $0 o} L|Щ ` n2 Lͤ2 ?2``{i 2Ȣ Lo}`{@ [8@Lɀ. nɚr8鐐m iPLݒ nL ЎL ʊ I)0iL eo}8 pđL`L| BDEHIL m z8n` `$o}Lđƹ L򬝄 |L津8 e H` R$0 $0Lo}đɚ 8鐐 L` ܒ%d |P` $$$0p 8ƿ0` ֒Page %d` F۬ f  ޥ ޗN`LL\8nFN~ ) L ܒ%6e  ܒ %2b-%02b-%02b %02b:%02b `ahp |YYo} |` N~ TϠP(\Y(N\&,m0C0B N(iHio}I  L ɛP>ȢȽ,K B )` ֒Reading %s ٘ ,0!B N( o}O> `ѣ?fjB N( F( L)а L+ )0r*芠ȹ :l}