x [0+8+FQ(+4)[1 0FO10F"G+Q1' +FQ()+4U1 FQ1"L0' ,Q1:M(Q1+4(]1]0)) WelDx  #Y#(J2%C=C H&W%qn&n%G7'{+.C*903l?(wM)4/q0~. 6,3"4*-"g6;6#Y65q'K{'F8x& Compress Buffer& Compress File& Compress Var List& File PURIFY Loaded& Purify BARE File& Purify Buffer@ TECOBARE Library GenerateDump EnvironmentGenerate LibraryList TECO FS FlagsTCompileTecdocTECO Mode^R Backward TECO Conditional^R Forward TECO Conditional^R Save EMACS Patch^R TQuote~DIRECTORY~~DOC~ & Compress Buffer~DOC~ & Compress File~DOC~ & Compress Var List~DOC~ & File PURIFY Loaded~DOC~ & Purify BARE File~DOC~ & Purify Buffer~DOC~ @ TECO~DOC~ BARE Library Generate~DOC~ Dump Environment~DOC~ Generate Library~DOC~ List TECO FS Flags~DOC~ TCompile~DOC~ Tecdoc~DOC~ TECO Mode~DOC~ ^R Backward TECO Conditional~DOC~ ^R Forward TECO Conditional~DOC~ ^R Save EMACS Patch~DOC~ ^R TQuote~DOC~ ~FILENAME~~FILENAME~~INVERT~}[a[b[c0uafsruntimuc @:ib`%a,-1*qc+(fsruntimucqc)=` :ib mb [0[1[2[3[4[5[6[7[8[9f[sstring J@F R :F:FB*DOCOND*"L S{END:}L.F[VB' J<:S  ; <@f  k 2f=!*:@; .,(cs!.)k>  ,1a- "e -k2r!' 1A#!+(2S!-1A#:)"N :I*FMT MACRO NAME MISSINGfserr' s! 1a- "E:I*FMT MACRO BODY EMPTYfserr' > mb FSBCONSU9FSBCONSU7Q..OU8[..O J<:S:!;.U2 :L0F:FB:!2C 2F~ !"N:I*Bad macro documentation beginningFSERR' .+1U3 2CS!:@F"N!"! :I*Macro documentation doesn't end at end of lineFSERR' Q3,.FX4 Q2J0L.,(Q3JL.)X5 Q9U..OG5Q7U..O ZJI   .(G5)J <:S!; I~DOC~ S:!>:k ZJ.(G4)J.,(S!.)K S-D Q8U..OQ3J > mb q7u..oj0S<:S;!> ZJI  !~DIRECTORY~:! .U0G9 Q0J.U4 <.U0:S!;Q0,.K I  S:!-2D> .,ZK I  Q4J<:S~;0KK> mb Q8U..O J<:S!*; .-2,(S!.)K @-F  K> mb J<.-Z;@F  KL> mb J0S <:S; -1A-"N-D'> mb J<:S ; -1A-"N-D'> mb J0S_ <:S;-1A-"N.-1F '> mb J0S  <:S;-2D2R> mb J2F= "E2D' fq7"nzj-2f= "e-2d'' q9u..ojq8u..oj <:S:!; .(-2S!.,)K Q9U..O:S:!; .(-2S!.,)X1fq1c Q8U..OG1> q8u..ozjg7q7fsbkillQ9FSBKILLJ@I` [0+8+FQ(+4)[1 0FO10F"G( )+Q1U0FQ0-3"GQ0' F0@FS^RInit' +FQ()+4U1 FQ1"L0' ,Q1:M(Q1+4(]1]0)) ` 1:m(m.m& Purify Buffer) [a[b[c0uafsruntimuc @:ib`%a,-1*qc+(fsruntimucqc)=` :ib [0[1[2[3[4[5[6[7[8[9f[sstring mb "e zj-2f= "e-2d' zj@i|  !~INVERT~:! +8+fq(+4)[20[3 <%3,-q2f2u3q3&1@;q3"l0'> f[BBindq3-1*5,q3*5g2q:..o(0)+q2 | J@I` [0+8+FQ(+4)[1 0FO10F"G+Q1' +FQ()+4U1 FQ1"L0' ,Q1:M(Q1+4(]1]0)) ` mb ' .+8u1q1+4/5*5+1-q1,32i .+4u5j177.iq5&177.iq5/200.&177.iq5/40000.&177.iq5j 0u60u7 q..ou8f[BBind[..oq..ou9q8u..o <.-z;.u3:x2q9u..o.(g2)j :fb:!"l 0l <1a-32"ed' 1a-!"n0;' d.(s:! .u2)jQ2-.+2u2 177.iq2&177.iq2/200.&177.iq2/40000.&177.i lq6+q2u6q3-q5\i %7w .-z;> q8u..o:k' "#.,zkq8u..oi 2r' z-2-2u4:s  "l.-3-2-2u4' "#zj0@f"n:i*No CRLF at end of COMPRS filefserr'' q3j2d q4-.+4u4177.iq4&177.iq4/200.&177.iq4/40000.&177.i q4-4c 2d.-z"n3d'> q5jq7*10+5+4u4177.iq4&177.iq4/200.&177.iq4/40000.&177.i q4-4,0i .u4q6,0i.-q5u6 mb q8u..o Z+4+(2000.*5)-1/2000./5U2 Q2*2000.*5U2 J177.IQ2&177.I Q2/200.&177.IQ2/40000.&177.I ZJQ2-(Z-B),0I q4+4u4q5+4u5 1f? mb q9u..o 1f[^pcase 4cll f]^pcase mb q5+4/5u1 q1*5-q5-4"n@feDSIfsErr' 2u:8(q1) j<.-z;.(4cl),.-2x2q4:f82 q4-q5u:8(%1)q4+fq2u4 \+q6u:8(%1)l> q8u..ojet comprseihpef [0:i0 f[dfile-1f[FnamSyntax fsuread"ne[fne]' fsuwrite"ne\fne^' 0[1 et01: er0 ff"efsifcdate-q1"L'' 1: FTCompressing file 0  f[bbind@y 15f~!* Varlist File( m(m.m& Compress Buffer) )"e jl iVar List Name Body  <.-z; 1a- "ei  0;' i l>' etCOMPRSeihpeff[vbf[vz.[1fnq1j <-:s  ;2F= "Efkc0;'>.fsvb :s  :fsz-.fsvz q..O[0f[bbindg0 J <@f  k 2f=!*:@; 2s!b,.k> <:s:!;> .[3[4[5[6 Q3-B"G 2F~ !"N:I*Bad macro documentation beginningFSERR' 2CS!:@F"N!"! :I*Macro documentation doesn't end at end of lineFSERR' Q3+2,.-1X5 Q3,.+2K <.,b:fb:!; .u4-s! .+1,q4X4 1,m.m ~DOC~ 4u6 :f=56"n q5m.vMM ~DOC~ 4' >' b,Q3fx3 ji  J<:S!*; .-2,(S!.)K @-F  K> J<.-Z;@F K L> J0S <:S; -1A-"N-D'> J<:S ; 0,-1A-"N-D'> J<:S_; 0,-1A-"N.-1F '> J<:S  ;-2D2R> ZJ-2F= "E-2A-"N-2D'' 2,ZFX*[4 HKG3J <:S!;0,.K:S:!;-2D B,.FX3Q4M.VMM 3> Q4M(M.M& Init Buffer Locals) 1,1M.LSpace Indent Flag 1,36M.LComment Column 1,(:I*!* )M.LComment Start 1,(:I*!)M.LComment End 1,(:I*)M.LParagraph Delimiter 1,(M.M^R Indent Nested)M.QI 1,Q1,Q..QW)M.Q. 1,0M.LDisplay Matching Paren 1,M.M& FILE PURIFY LOADED"E F[DFILEM(M.MLoad Library)PURIFY' m.m^R Backward TECO ConditionalM.Q.." m.m^R Forward TECO ConditionalM.Q..' 1,(@:I*+ ET :EJ FSDSNAME:F6U2 F~2EMACS1"EETEMACS;' FSDFILEU2 @:I*|M(M.MGenerate Library)21|[2M2 +)M.LCompile Command M.Q..D 0FO..QTECO ..DF"NU..D' "#W:G..DU..D Q..DM.VTECO ..D 1m(m.m& Alter ..D)[A]A"(')<(>);A' 1M(M.M& Set Mode Line)TECO}f[bbindf[dfile 1f[fnamsyntax etFOO :EJet fsdfile[..2 [..1:I..1 [0 <]0w:i*-fq0; fsosteco"net EMACS' 0fsdvers er0 fsdfileu0 f~(fsdfn2:f6)COMPRS"n m(m.m& Compress File)0' :i..1..1et0 er COMPRS fsifcdate-q4f"g+q4u4' zf[vb @aZJ14.i15.I12.I j:f:fb*docond*"L s{end:}l b,.@fx3' f]vb > -1fsfnamsy fq..1"e:i*Generate Library: no source filesfserr' 0[4 [3:i3 Q..2[2 et2 m..1 0[5 1: Q5"nq5-q4"g0'' FT -> 2  fq3"gjg3[..o qBuffer Name[9 fnM(M.MSelect Buffer)9 [..om(m.mSelect Buffer)*DOCOND*]..o m(m.aDOCONDDOCOND) -3fsqpunwind' J:S!~FILENAME~:! <:S !~FILENAME~:!; -s c .,(:s .)k > J:S!~DOC~ ~FILENAME~:! <:S !~DOC~ ~FILENAME~:!; -s c .,(:s .)k > 0[9j<:s!~DIRECTORY~:!; L .,(:s :.)@fx9 -2k> fsbcons[8 j<:s:!; 0l2f=!~"ns !' .,(s L.)fx1 q8[..ozjg1]..o> zjg8q8fsbkill]8 i!~DIRECTORY~:I! G9i ]9 m(m.m& Purify Buffer) et2 ei@hpef 0u..hf[bbinder@y m(m.m& Compress Buffer) m(m.m& Purify BARE File) etemacs; :ejei@hpef[1[2[3 :i3 fs:ejpage*5120+400000000000.u1 qEditor Nameu1m.m& Startup 1u.3 1:w q..lu.1q..pu.2 @:i..l|3q.1u..l0u.1q.2u..p0u.2:m(q.3(0u.3))| -3fsqpunwind 0fs^Rlast 0u..p et -f? ei@ejNotemacrobodiesaren'tallowedtobeempty.y F[BBINDWF[DFILEW-1F[FNAMSYNTAX[0[1[2[3[4[5[6[7[..0[..1[..2 E\E[FNE]E^ 32 95*5,32I IZU..2 15.*5F  12.*5F  11.*5F  33.*5F  HFX2 EREGJ4LS:I@R:X6 @Y ZJI  :I1FQ1"E:I120FG' FF"N'"#73'-3U0 J<.-Z;.,ZF2 .-3,.+2F=  "N0A(-DI )#100.I'> J0S <:S;R-DI M> J0S <:S;-DI J> 0U20U4 FSBCONSU3 J<.-Z;%2 .,(Q0L.)FSBOUND FSVZ"N :-S "EB,FSZFSBOUND :S"LR'' B,.FSBOUND' J<.(:S:!"N .-2(-2S!C.,)X5 [..OQ3U..O FQ5-Q4"GFQ5U4' Q2\40.IG515.I12.I ]..O' )J:S ;-DI IL> ZJ0,FSZFSBOUNDW 0,1A-14."EC'> Q4+2U4[..OQ3U..O0U5 J<.-Z;.U7%5 \U2C0K:L Q4-.+Q7,56.IQ2\L> J:LL Q4-36"LZJ Q4+6U4Q0-1U0 Q0*2*((Q5+Q0*2-1)/(Q0*2))-Q5<15.I12.I> J<.-Z; Q0<.U7Q0L:X5Q7J:L Q4-.+Q7,40.IG5L> Q0K14.I15.I12.I>-D' ]..OZJ14.I15.I12.IG3 Q3FSBKILL ZJ-:S."NL.,ZK' FSMSNAMEFSDSNAMEEWDSK: HPEF6HK EREGJ4K:L.,ZK :FTListing is file ..O Be sure to delete it when printing is finished. Here are some commands; kill the ones you do not want executed. fsTopLine+3f[TopLine HX5ZJ-FWKHFX4 I:XGP ;LIST 5_1 :@ 4LREC/G :@ 5/F[1]/1J/^/L[RANDOM]/#,4LREC/@_' BJ0U..H 3M(M.M& Minibuffer)Menu fsTopLine+5fsTopLine :FT @ ..O :VP  fsTopLine-1fsTopLine :FTDone. [0[1[2[3[4[5[60[..F F[BBINDQ..OU4I F[BBINDQ..OU3[..O :I*Teco Doc[..J 0F[^RSTAR F[DFileETDSK:INFO;TECORD INFO 0FSDVERSWER@YF]DFile !ARG! :FTQ4U..O J<:S^ ;-DR> J:S "NB,.-1K' J<.-Z;1A-32"L1A-33."N1A(DI^)+100.I2R''C> Z"EOGETARG' H@FC J:<1AF :@"GC!' 1A-^"E2AF: +1"NCDI@!''0;> .(1:<1A-F"EC1A-S"E .-Z"NC40.I1A-^"E2C40.I'''' "#1A-E"EC''1A-^"EC'> :CW0A-<"E9I' B,.X2 ),.X5 0A-9"E-D' J<:S ;-D> Q3U..OBJS) !SEARCHAGAIN! :S 5"EFGFTNot found.OASK' 1A-:"E:L'"#0:L' .U6 <:S 2 <>2 <>,<>2"EQ6J0;' FQ2R:I0 :< 1A-40.F"L:;'"E0,0A-^"NC!'' 1@X0C> 0,FQ4:G0U0 F~04"E:0L0;' > !MORE! .( ),.T !ASK! 0fsFlushedwFT More ( .u0s r .,(s r).t0:l FT)?  @:FIU033.FS^RINIT-Q0"EFIW0U..H' FIU0 Q0FQNxqn+1"G-FSREREADW0U..H' Q0-40."EOMORE' Q0-12."EFT OSEARCHAGAIN' Q0-33."E !GETARG! FR1F[TYPEOUT 1,M(M.M& Read Line)Teco Command: U0 F]TYPEOUT FQ0"GQ4U..OHKG0OARG' OASK' FT Responses at this point are: X, Q, N exit Rubout exit Space type more Line search again for same arg Altmode read another arg and search OASKf[vbf[vz :,.ffsbound j<:s; ric> fsboundf[BBind :FEBJ:LL J< fswidth/9< .-z;:LKI > .,(-s c).fkI .-z;> HT:FVu0[1.[3 .(:S  :FSZ-.F[VZ)J <:S"'!*; 0A-""E%1'!'! !"!0A-'"EQ1-1U1Q1-1"L0'' 0A-*"ES!'> Q3JFG00[1[2.[3 .(-:S  :.F[VB)J <-:S"'! ; 1A-""EQ1-1U1Q1-1"L0''!'! !"!1A-'"E%1' 1A-!"E.U2-S! 2A-*"NQ2J'' > Q3JFG[0[1[2[3 <-:s  ;2F= "Efkc0;'>.u0 :s  :L.u1 q..ou2f[dfilef[bbind qEMACS Version:\u3 1:@yzji > q0,q1g2 -2f= "ni ' eihpef PURIFYMacros for editing and debugging TECO macros, and for maintaining libraries and dump files.S Compress a file of macros, in the buffer. Removes spaces and comments, and makes the documentation and directory strings.S Purify the file BARE of names of bare TECO ^R functions. This file is purified so as to make the definitions of those names appear to be the bare TECO functions.S Convert macros in buffer to :EJ'able format. Assumes compression has been done already, if desired. Nonzero numeric arg means leave out the ~INVERT~ macro and the loader macro. The caller should already have put in an ~INVERT~ macro if desired, and inserted the loader macro at the front of the buffer, leaving point after it.S Compress a varlist file such as EMACS;VARS >. Turns it into a standard COMPRS file containing one definition, for && Variable Name List, whose value contains pure strings, one for each of the lines present in the source file.S Compress file of macros. Input file taken as string argument. Output is written in file with FN2 of COMPRS. If the COMPRS file already exists and is more recent, the operation is skipped (however an explicit numerical argument forces compilation anyway).C Compile macro to be tried out. Compile (compress) the buffer or the current page as an EMACS function definition, and define the function name(s) at the front. The compiled definition is also returned as a value.C Set up commands for editing TECO code. Makes Rubout the Tab-hacking Rubout. Tab does ^R Indent Nested. Loads the PURIFY library. M-' and M-" move forward and back over conditionals.C Make one :EJ file from several source files. Takes desired name for :EJ file as first string argument, followed by the names of the input files. A null string argument (altmode-altmode) ends the argument list. The input files are all compressed (if they haven't been) and the COMPRS files are then purified together. Filename defaulting is sticky; input FN2's default to >, output FN2's to :EJ. The defaults are restored after the macro is finished.C Generate the BARE library. Source file is string arg.C Dump the current environment. Takes filenames as suffix string argument. The dumped environment is given a ..L which will load the libraries which are loaded now, and then perform other start-up actions as directed. The filenames to use to load the libraies currently loaded are found in variables named Library Filename, where is the name of the library. If that variable is to include a constant version numbr, it should be set up when the library is loaded. Libraries which are loaded at dump time but do not possess such variables will not be loaded by the environment which is dumped. The additional start-up actions come from the value of the variable named "Startup", which is killed before dumping. Note that q-registers .1, .2, and .3 are clobbered by this macro. They will be zero'd on startup by the dumped ..L. The file EMACS;EMACS TECO is an example of an init file that sets up things for use with this macro.? If this is defined, PURIFY is loaded.C Make XGP listing of macros file. Example: 73 MM@ TECOUSRCOM >20FG (notice that 73 is the page height with the font 20FG). 20FG and 73 are actually the defaults, so that MM@ TECOUSRCOM is equivalent.C Look up information on Teco commands. String arg is command, e.g. MM TecdocF^B or MM TecdocFS HPOS. Represent a control character with a "^" not followed by a space. Spaces elsewhere are ignored. The format of INFO;TECORD is understood. Type "?" for help.^R Quote with ^] all altmodes and ^]'s in the region.C List names of all TECO FS flags.^R Move past the ' matching the following ".^R Move back past the " matching the preceding '.~^R Add this function to EMACS;PATnnn >. EMACS;PATnnn > is loaded in by & Load Essential Environment, in the process of generating a new runnable EMACS or stand-alone subsystem (INFO, etc). The format of PATnnn is just like that of a source file.& Compress Buffer & Purify BARE File & Purify Buffer & Compress Var List & Compress File TCompile TECO Mode Generate Library BARE Library Generate Dump Environment & File PURIFY Loaded @ TECO Tecdoc ^R TQuote List TECO FS Flags ^R Forward TECO Conditional ^R Backward TECO Conditional ^R Save EMACS Patch +8+fq(+4)[20[3 <%3,-q2f2u3q3&1@;q3"l0'> f[BBindq3-1*5,q3*5g2q:..o(0)+q2