Google
 

Trailing-Edge - PDP-10 Archives - steco_19840320_1er_E35 - 10,5676/teco/macros/clerk.tco
There is 1 other file named clerk.tco in the archive. Click here to see a list.
!;CLERK -- Generates repeated blocks of text				!
!;Author: Clive B. Dawson -- Univ. of Texas at Austin			!

!BEG!
	3EO			!;Set EO level!
	HK 1ET HXz		!;Initialize!
	13I$ 10I$ HXf		!;Put a crlf in Qf!
!BEGA!	0U2			!;Q2 is our dispatch counter!
	^O33U9			!;Q9 will contain input delimiter!
				!;Starts off as altmode!
	Qf= ^AInsert the text:^A Qf=	!;Type message!
!GET!	^TU1$			!;Read a char and put it in Q1!
!BEG1!	Q1-127"E ."N R T D'OGET$'		!;Process rubouts!
	Q1-8"E ."N R D I $ 8I$ 2R T 2D' OGET$'	!;Process backspaces!
	Q1-21"E Qf= 0L K OGET$'		!;Process ^U to wipe out current line!
	Q1-7"E ^TU5 Q5-32"E Qf= 0T OGET$'
	   Q5-7"E OBEG$'
	   Q1I$ Q5U1 OBEG1$'		!;Above processes ^G space, ^G^G!
	Q1-18"E ^TU1 Q1I$ OGET$'	!;Process quoted characters (^R)!
	Q1-Q9"N			!;Is it the delimiting character??!
	   Q1I$OGET$'			!;No, insert and loop!
	Q9-13"E^T'			!;If delimiter was a CR, flush the LF!
	13U9			!;After the first time, delimiter will be CR!
	Q2-1"E OLL$'		!;If Q2 is 1, go ask for upper lim!
	Q2-2"E OUU$'		!;If Q2 is 2, go process the iterations!
	Q2-3"E OOUT$'		!;If Q2 is 3, go output the file!
	ZJ ."E OEND$' HXA HK	!;Must be 0, so put away the text!
!AGAIN!	Qf= ^ALower bound: ^A J 1U2 HK OGET$	!;Go get lower bound!
!LL!	J \\UL HK		!;Put it away in Q-reg L!
	QL"E OBEGA$'		!;If its 0, we are done!
	Qf= ^AUpper bound: ^A J 2U2 HK OGET$	!;Now go get upper bound!
!UU!	Qf=
	J \\UU HK		!;Put it away in Q-reg U!
	QLU1 Q1-QU"G OAGAIN$'	!;If lower > upper, we're done!
	GZ			!;Get total of what we have so far!
!LOOP!	.UP GA QPJ
	<S%%%$; -3D Q1\\>	!;Get a copy of the text and substitute!
!NOGOOD!
	%1-QU"G HXZ OAGAIN$'	!;See if we're done!
	ZJ OLOOP$
!END!	Qf= ^AFile name: ^A 3U2 HK 13U9 OGET$	!;Get output file name!
!OUT!	J IEW$ ZJ @I/$/
	HXB MB HK GZ EX		!;Set up the ew and exit!