Google
 

Trailing-Edge - PDP-10 Archives - mit_emacs_170_teco_1220 - emacs/billw.teco
There are no other files named billw.teco in the archive.
!* -*-TECO-*- *!

!^R Find Label2:! ! Looks for the label referenced in this line !
:I*Cfs echo display
M(M.M^R_Go_to_address_field)
1M(M.M^R_Mark_Word)
1a-13"E 0A-32"E @FT?No_Label
-D''"#
[2 .,:X2 .[3			    ! * Put into Q-register!
 .,.+2000f:fb2:"Ew .,.-2000f:fb2:2="E @FTFurther_
w.+1990,.+7000f:fb2:"Ew .-1990,.-7000f:fb2:2="E @FT._
w.+6990,.+12000f:fb2:"Ew .-6990,.-12000f:fb2:2="E @FT._
w.+11990,.+22000f:fb2:"Ew .-11990,.-22000f:fb2:2="E @FT._
w.+21990,    Z  f:fb2:"Ew.-21990,B f:fb2:2="E
    :I*Cfs echo display @FTNot_Found'''''''''''
.-q3"L @FTBackward'
.-Q3"G @FTFoward'
]3]2'
 1FSECHO ACTIVE
!^R Find Label:! ! Looks for the label referenced in this line !
:I*Cfs echo display
M(M.M^R_Go_to_address_field)
1M(M.M^R_Mark_Word)
(1a-13)*(1a-9)*(1a-[)"E (0A-32)*(0a-44)"E w@FT ?No_Label
0a-32"E-D' oABORT''
[2 .,:X2 .[3			    ! * Put into Q-register!
1f<!DONE!
1:<              .,.+2000:fb2:"N f;DONE'>
1:<              .,.-2000:fb2:2="N f;DONE'>
1:< @FTFurther_ .+1990,.+7000:fb2:"N f;DONE'>
1:<              .-1990,.-7000:fb2:2="N f;DONE'>
1:< @FT._  .+6990,.+12000:fb2:"N f;DONE'>
1:<         .-6990,.-12000:fb2:2="N f;DONE'>
1:< @FT._ .+11990,.+22000:fb2:"N f;DONE'>
1:<        .-11990,.-22000:fb2:2="N f;DONE'>
1:< @FT._ .+21990,.+45000:fb2:"N f;DONE'>
1:<        .-21990,.-45000:fb2:2="N f;DONE'>
1:< @FT._ .+44990,    Z  :fb2:"N f;DONE'>
1:<        .-44990,    B  :fb2:2="N f;DONE'>
>"E :I*Cfs echo display @FTNot_Found '
.-q3"L @FTBackwardws:='
.-Q3"G @FTFoward'
]3]2
!ABORT! 1FSECHO ACTIVE

!& Create Bounds:! !& returns MIN(.+ARG,Z) or MAX(.-ARG,B) !
F[1
q1"L .+q1,Bfu1w'"#
     .+q1,Zf*0:u1'
q1+(]1w0)
!Jsys:! ! runs JSYS on the previous or current word !
f[1
@FT_ 1M(M.M^R_Backward_word)
1M(M.M^R_Mark_word)
q1-4"n
     0F[ LINES 0F[TOP_LINE F+
     [2 .,:X2 -1FO..Q JSYS Fork [3 q3"L
     @FZSYS:JSYS.EXE_2
M.V JSYS Fork '
     "# 0,q3@FZJSYS_2
'
     ]3]2ww :FI-32"E FIW'
     F+ F]TOP_Line F]Lines
'"#
   [2 .,:X2 -1FO..Q JSYS Fork [3 q3"L
     @FZSYS:JSYS.EXE_2_-JSYS-.TMP.-1;T
M.V JSYS Fork '
     "# 0,q3@FZJSYS_2_-JSYS-.TMP.-1;T
'
     ]3]2ww M(M.M Select_Buffer)-JSYS-.TMP
     1M(M.M ^R_Visit_File)-JSYS-.TMP''
]1

!DDT:! ! runs SDDT in a subfork !
@ft_ -1FO..QSDDT Fork [3 q3"L
    FZSYS:SDDT.EXEM.V SDDT fork '
    "# @ft[DDT_Continues]
 q3FZ'
  ]3w :FI-32"E FIW' F+

!Run Compiler:! ! runs SYS:<modename>.EXE!
qmode[2
@ft[2] -1FO..Q2 Fork [3 q3"L
    FZSYS:2.EXEM.V 2 fork '
    "# 0,q3FZ'
  ]3]2 F+

!Finger:! ! Find a user !
:I*Cfs echo display
1,FUser:_[1
:I*Cfs echo display
 -1FO..Q Find_ Fork [3 q3"L
     @FZSYS:FINGER.EXE_1/terse
M.V Find_ Fork '
     "# 0,q3@FZF_1/terse'
1FS Echo Active ]3]1
!Print file:! ! print the file in the current buffer!
qBuffer_Filename[1
1,0M(M.M ^R_Save_File)
0fzprint 1
w]1

!Extract Keywords:! !C extracts the terminal symbols from some BNF
Terminal symbols begin with an upper case letter, and end
end with a seperator character (^B in search string).  The
rest of the buffer is destroyed. !

  . 0f[ Bothcase		    !* exact searches !
  <:sABCDEFGHIJKLMNOPQRSTUVWXYZ;				    !* Find a keyword !
    -c .			    !* Save beginning address !
    sw			    !* End of the keyword !
    :,.@x1			    !* Add it to the q register !
  >
  hk g1				    !* Move in the keywords !
  bj<:s; -di
>
 
!Position Buffer:! ! takes a percentage of file to position the buffer at !

F*z/100j
!Code table:! ! generate code conversion tables!
[1
< fiu1 q1-27"E0;' i	movei	C,"q1ii"
 @V W q1fsecho out>

!^R Previous Narrow Page:! ! back up a page in narrow mode!
-1m(m.m^R_narrow_bounds_to_page)

!Expand Diagram:! ! expand a digram to make it bigger!
[1[2 M(M.M ^R_Narrow_Bounds_to_Region)
bjz M(M.M Untabify)

!* first we un-ident the whole thing as much as possible !

B+1j.u199u2<.-z; :s ;((0a-13)*(0a-10))"N(.-q1)-q2"L .-q1u2 q2='' l .u1>
bjz
-q2M(M.M ^R_Indent_Rigidly)

< .-z;
  1a"A 32u2 '"# 1a"D 32u2'"# 1au2'' !* letters and digits are expanded with!
				    !* spaces, other chars with themselves!
  c q2-13"N q2-10"E13i' q2i'	    !* insert the new character (except CR)!
>
!* bjz M(M.M Tabify)  Doesnt Work !
M(M.M ^R_Set_Bounds_Full)
]1]2
!BillWs Write File:! ! write a file with defaults!
31F[:ET MODE			    !* save old GTJFN bits, and use defaults!
@M(M.M Write_File)		    !* call ordinary write file routine!
F]:ET MODE			    !* restore old BITS!
!Monitor Mode:! ! set up for editing DEC standard Macro !

M(M.M Make_Local_q-Reg)_	    !* Space is localy defined !
M(M.M Make_Local_q-Reg)	   !* Tab is localy defined !
M(M.M Make_Local_q-Reg),	    !* Comma is localy defined !
M(M.M Make_Local_q-Reg)/	    !* Slash is localy defined !
M(M.M Make_Local_q-Reg)..;	    !* M-; is localy defined !
M.M^R_MonitorMode_Space U_	    !* runs fancy space definition !
M.M^R_MonitorMode_Space U	   !* runs fancy space definition !
M.M^R_MonitorMode_Space U,	    !* runs fancy space definition !
M.M^R_MonitorMode_Space U/	    !* runs fancy space definition !
M.M^R_Monitor_Comment U..;	    !* M-; locally defined !
:i*MonitorM.LSubMode		    !* Set SubMode name for buffer !
!^R MonitorMode Space:! ! maybe uppercase macro code!
  .,.-80@:F;/\		    !* See if we are in a comment or string !
  :a-31*(0a-10)"L		    !* and not at the beginning of a line !
    -fwf(@fc) w-fwF'		    !* uppercase the previous word !
  FS^R LAST1-13"nq1I.-1,.@V]1' !* Insert the char invoked with !

!^R Monitor Comment:! ! indent for comment after doing capitaliaztion !
  13fs^R LAST			    !* prevent from inserting command!
  M(M.M^R_MonitorMode_Space)	    !* do capitalization!
  M(M.M^R_Indent_for_Comment)    !* call commend macro and return !
!Cray Mode:! ! Set up for editing Cray assembly language !

M.M^R_Tab_to_Tab_StopM(M.M Make_Local_q-Reg)I	!* Tab is localy defined !
0 M.LIndent_Tabs_Mode		!* Indent using Spaces !
35 M.LComment_Column
:I*_________:_________:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:_______:M.LTab_Stop_Definitions
!STANSW:! ! Add a STANSW conditional block to code. !
!* Puts IFE STANSW,< and >;IFE STANSW at point and mark. !
!* Adds IFN STANSW,< >;IFN STANSW with same code duplicated. !
!* with an ARG of 4, only adds empty IFN STANSW pair. !
!* with and arg of 16, puts IFE STANSWs, but no IFN STANSW. !
f-4"EiIFN_STANSW,<;;;_
>;IFN_STANSW
w-l-2c'"#
  :[1[2.[3 Q1-Q3"GM(M.M^R_Exchange_Point_And_Mark) q3[1 ]3 '
  q1,q3x2 i>;IFE_STANSW
wF-16"NiIFN_STANSW,<;;;_
2>;IFN_STANSW
'
  q1jiIFE_STANSW,<
wF-16"Ns;;;_'
  ]3]2]1'
!& Digestify:! !& Take a TENEX MAIL FILE and make it into a digest !
!* A Digest has the following format :				!
!* Mailer info							!
!* Digest name		Date		Volume n : Issue m	!
!* This weeks editor:						!
!* Today's Topics:						!
!*   (subject lines from each message)				!
!*   (line of 70 dashes)					!
!* Messages, each containing Date:, From:, Subject:, and To:	!
!* Each message ends with a line of 30 dashes			!
!* End of digest						!
!* ************* (24?)						!
!* 7 dashes							!
!* EOF								!
BJ [s[1 0[2  1,FList_Name:_  1,FEditor:_ 1,FDestination:_ 
	  1,FVolume:_     1,FIssue:_ !* Issue !
!* M(M.M Find_File) !
:iS				!* Initialize Subject collection Qregister !
<				!* For each message !
   .U1 S

w 1a-13"N -L'			!* Find the blank line at end of headers !
  Q1,.FS BOUNDARIESw BJ	!* Narrow bound to just the header !
  M(M.MKeep_Lines)Date:Subject:To:From:	!* Only keep interesting !
  BJ :Ssubject: "L 1@XS %2 '	!* collect the subject of the message !
  0,FS ZFS BOUNDARIESw	!* restore boundaries !
 
  :S;00000000000"E ZJ' 0L     	!* Find the next TENEX message header !
  !DTL! -l1:fb"Ew1K ODTL'	!* delete trailing blank lines !
  L I
------------------------------

				!* insert message seperator !
.-z; >				!* All messages done. !
!* Do global stuff - trailer, header !
IEnd_of_N_Digest
**************************
-------

BJw I
=DELIVERY-OPTIONS:MAIL

_Score.Stanford.EDU.#Internet
N-Request

Score.Stanford.EDU
D

Date:_ 202021000000.,-1FS FD CONVW-4CWDI_3C !* Date magic ! I
Subject:_N_Digest_VV_#I
From:_N_Digest_<N@Score.Stanford.EDU>
To:_N_Distribution_List:_;
Reply-to:_N@Score.Stanford.edu

N_Digest___336400000000.,-1FS FD CONV !* More date magic !
I___Volume_V_:_Issue_I

This_weeks_Editor:_E

Today's_Topics:

.U1 gS Q1J Q2M(M.M^R_Center_Line)w I
----------------------------------------------------------------------


BJ
!Digestify:! !C Take a TENEX MAIL FILE and make it into a digest !
@M(M.M&_Digestify)