From: koning@koning.enet.dec.com (Paul Koning)
Subject: Re: Enhanced VTEDIT?
Reply-To: koning@koning.enet.dec.com
Organization: Digital Equipment Co., distributed systems architecture
Date: Thu, 10 Sep 1992 15:53:33 GMT


In article <jerry.085p@marin.uucp>, jerry@marin.uucp (Jerry C. Hudgins) writes:
|>Since it appears that this group is alive after all, I have a question...
|>
|>Has anyone out there got a modernized version of VTEDIT that they'd like to
|>share?  I've seen a couple of interesting ones in the past, but (alas) I
|>have no access to them now.  Something that understood VT2xx+ terminals a
|>bit better would be great.  One that left them in ANSI mode and didn't try
|>to disable the extra keys, so that you could set up PREV, NEXT, etc. would
|>be useful.  Anyone have something like this?
|>
|>I know that TECO purists despise VTEDIT and live for Scroll Mode, but I hope
|>you guys can humor me a bit.
|>
|>-- 
|>----------------------------------------------------------------------------
|>Jerry C. Hudgins                   Internet: jerry%marin.uucp@seq.uncwil.edu
|>125 Cherokee Trail                 UUCP    : uunet!marin!jerry
|>Wilmington, NC 28409-3407 (USA)    Voice   : (919) 392-2358

Here's one that uses ANSI mode and makes some of the VT200 keys work.
It also handles bigger screens (such as tall windows on workstations).
Run it through SQU.TEC to make it smaller, of course...  It also has
the local symbol sorter and the .MAC/.MAR formatter built into the same
file for convenience.

Documentation?  Eh... someday I guess I should.  You could read the
code, I suppose... or DIFF it against the old one.  Most changes are
pretty obvious; a few non-obvious ones:
	"Do" repeats the last PF2 command
	F17 is Exit
	F20 is Quit

@^A/paul/

--------------------- cut here ------------------------------
! * * * * * * * * * * * * * * * * * * * !
!					!
!	       VTEDIT.TEC		!
!	 !!VTEDIT.TEC V03.01!!		!
!					!
!     Last edit on 26-Mar-80 by MHB	!
!        Hacked by GPK  05-FEB-85	!
!					!
! * * * * * * * * * * * * * * * * * * * !
!					!
! Q-regs used:				!
!  I% Terminal's ID			!
!	-1 = unknown			!
!	 0 = VT52			!
!	 2 = VT100 in VT52 mode		!
!	 4 = VT100 in ANSI mode, no AVO	!
!	 6 = VT100 in ANSI mode, AVO	!
!  I$ This macro			!
! [M% Formatter exception character(s)]	!
! [M$ Formatter]			!
!  0% Left margin position		!
!  0$ Dispatch table			!
!  1% Pre-buffered typed char		!
!  1$ Word delimiter table		!
!  2% Non-zero => "6" will restore	!
!  2$ Last deleted text			!
!  3% 'Arg entered' flag		!
!  3$ Get character macro		!
!  4% Start of 'BLUE key' save		!
!  4$ Dispatch key, prompt for string	!
!  5% Numeric arg			!
!  5$ Print escape sequence		!
!  6% Column number for within column	!
!  6$ Checkpoint control		!
!  7% Char typed, or -1=starting	!
!  7$ 'BLUE key' saved text		!
!  8% Scratch				!
!  8$ Last search arg			!
!  9% Scratch				!
!  9$ 'RED key' command			!
!					!
! * * * * * * * * * * * * * * * * * * * !

@^UI$[0 [1 [2 [3 [4 [5 [6 [7 [8 [9 ^[ 0,0X4 7:WU4 [4 Q4"N 0,7:W^[ '
10U4 [4 ETU4 [4 EUU4 [4 EDU4 [4
^D ET&512"E @^A/?Sorry, no interactive scope is available
/ @^U0/-1/ @O!BAD! ' 128,32768#16#8#1ET -1EU 1,0ED
ET&4096"N 96EE '
@^U0%.ABCDEFGH..KLMN.PQRSTUVWXYZ[\...%
32@^U1// 9:@^U1// 44:@^U1// 13:@^U1// 10:@^U1//
@^U3/#32768U9 ET"L 0U7 Q1"N Q1U7 0U1 Q9#64U9 |
 Q9&8"N QM,Q9:WU7 | 0Q3"E Q9#64U9 ' Q9:WU7 '
Q7&255U7 Q7&128"N -1U7 ' ' | 3U7 ' Q7/
@^U5/U9 Q9&96"E 0U1 | 27:^T Q9"A 0:W-3"G ^^[^T ' ' ' Q9^T/
0U0 0U1 0,0X6 0,0X7 0,0X8 0,0X9 0,4:W^[ 12W
0,6:W^[ ^^=M5 6UI -1U7 -1UV
"E @ER// G* ^YK ^S"E @EW// G* ^YK ^S"E @O!EE! ' ' '
!INQ! QI"L 0:W-3"G ^^<M5 ' 27:^T ^^Z^T ' -1W
< 0U2 !B! 0U4 0U6 !C! 0U3 1U5 !D! ET; 0M3^[ !E! ET;
Q7-32"L Q7Q0U9 @O!^EU9C! '
Q7-127"E .-Q5"L .U5 ' .-Q5+1U2 @O!DEL! '
!.C! !LC! !PC! !QC! !SC! 0Q3"N Q7@I// F< ' MM 0U2 0U4 0U6 0U3 1U5 @O!E!
!MC! 64M3-10"N @O!ERR! ' !CRLF! 13@I// 10@I//
0Q3"E QV+1"G 2R 0^Q"N <0^Q; R ::@FS/^ES//; > C '
 0L 0U3 ^Q-2<%3^[ 0A-9"E -Q3&7%3^[ ' C>
 72-Q3U3 Q3"G Q3+7/8<9@I//> | 32@I// ' QV-1000"G @I/;/ QV\ |
  1000+QV\ 4R @FS/^EX/;/ ' L ' ' 0Q6"L F< '
  0Q6"E @O!CHKPT! | G6 2R 0A-1@I// D .-1,.+1X6 .-1,.+1K F< '
!W?E! !2F! Q5< 13@I// 10@I// > Q5*2R F<
!BC! .U9 Q5< -.; R @-S/^N^EG1/; R @-S/^EG1/; > .+1U2 Q9J @O!DEL!
!DC! Q5^QU2 Q2"G Q2-1A-10"E -1%2"G Q2-1A-13"E -1%2^[ ' ' ' ' .+1%2^[ @O!DEL!
!FC! Q5< @S/^EG1/; @S/^N^EG1/; R > ."E ZJ ' F<
!HC! !24F! Q5L ."N -1A-10"E R ' ' ."N -1A-13"E R ' ' F<
!KC! Q5^Q+.+1U2 Q3"F 4:W"N 4:WU2 0,4:W^[ ' ' @O!DEL!
!RC! Q5< -.; R @-S/^N^EG1/; R @-S/^EG1/; > F<
!UC! 0^Q+.+1U2 @O!DEL!
!P?E! Q5L F<
!T?E! -Q5L F<
!23F! 0,0X2
![C! 64M3-32"L Q7Q0U9 @O!^EU9CE! '
 Q7-^^O"E ETU8 0,4ET 64M3^[ Q8&4"E 4,0ET '
  Q7"A Q7&32"E Q7-^^M"N @O!?E! ' ' ' @O!??E! '
 Q7-^^?"E 64M3^[ !??E! Q7&31Q0U9 @O!^EU9?E! '
 Q7-^^["E 64M3"D Q7-^^0U4 @O!ARG! ' Q7-^^?"N @O!?E! ' 0U8
  <64M3"D Q8*10+Q7-^^0U8 | 0; ' > Q7-^^;"E 64M3"D Q7&2U5
   <64M3&95-^^C"E Q5+4UI 4U5 Q8-5"E 8UI 6U5 ' Q8-60"G 4U8 6UI '
    @O!CID! | Q7"D | Q7-^^;"N 0; ' ' ' > ' '
  F< '
 Q7-^^/"E 64M3"A 0UI Q7-^^Z"E 2UI ' QIU5 @O!CID! ' F< '
 Q7"A !?E! Q7&31Q0U9 @O!^EU9E! '
 Q7-^^-"E 64M3"D @^U4/-Q5/ @O!EXP! ' Q7-21"E F< ' -1U3 -1U5 @O!E! '
 Q7"D @^U4/+Q5/ | @O!ERR! '
!EXP! 10U3 Q7-^^0U5 0U8
!VAL! :Q4-3"G ^^HM5 ^^KM5 13^T @^A/Radix / Q3:= @^A/, Expression /
 Q3-10"E Q8:= | Q3-8"E Q8:== | Q8:=== ' ' 2Q4^T '
!CHR! 0U7 :Q4-3"G Q3^R Q5\ ^D ^YT ^YK ^^KM5 -^S< ^^DM5 > 32U7 '
 Q7#64M3"D Q3-8"E Q7-^^7"G 7M5 @O!CHR! ' ' Q5*Q3+Q7-^^0U5 @O!CHR! '
 Q3-16"E Q7"A Q7&95-^^G"L Q5*Q3+(Q7&95)-^^A+10U5 @O!CHR! ' ' '
 Q7-^^^"E 0U7 :Q4-3"G 32U7 ' Q7#64M3-21"E @O!CHR! ' Q7"A Q7&95U7 '
  Q7-^^."E .U5 | Q7-^^Z"E ZU5 | Q7-^^^"E 0U7 :Q4-3"G 32U7 ' Q7#64M3U5 |
  Q7-^^D"E 10U3 | Q7-^^O"E 8U3 | Q7-^^X"E 16U3 | 7M5 @O!CHR! ' ' ' ' ' '
   :Q4-3"E G4 3R @I/Q8/ .-2,.+3X4 .-2,.+3K ' @O!VAL! '
 Q7-21"E :Q4-3"G -2W ' F< ' Q7-127"E :Q4-3"G 0U5 @O!VAL! ' '
 M4U8 0U5 Q7-^^+"E @^U4/Q8+Q5/ |
 Q7-^^-"E @^U4/Q8-Q5/ | Q7-^^*"E @^U4/Q8*Q5/ |
 Q7-^^/"E @^U4*Q8/Q5* | Q7-^^#"E @^U4/Q8#Q5/ |
 Q7-^^&"E @^U4/Q8&Q5/ | Q7-^^="E @^U4/Q8+Q5/ |
 :Q4-3"G -2W ' -1U3 Q8U5 @O!E! ' ' ' ' ' ' ' @O!VAL!
!ARG! 64M3"D Q4*10+Q7-^^0U4 @O!ARG! '
 Q7-^^;"E @O!SIZ! ' Q7-^^~"E .U7 Q4\ Q7,.X2 Q7,.K @O!^EQ2F! '
 F< '
!M?E! !1F! @^U2/Q5:@S%^EQ8%/ @^U4%Buffer% @O!SAG!
!N?E! @^U2/Q5:@S%^EQ8%/ 0U6
!SRH! Q5"L 0U2 .U3 < Q3J Q2-1:@S%^EQ8%; .-Q3"L 0; ' -1%2^[ -1%5^[ > Q3J '
 Q5U7 Q5"N M2U7 ' Q7"U 7M5 Q6"E 32768U6 ' ' Q6"N Q6W '
 Q7"S 4:W"E 0U2 0U4 0U6 0U3 1U5 ET;
 ^SC .+1,4:W^[ -^SC 64M3^[ 0,4:W^[ @O!E! ' ' F<
!Q?E! Q5U2 Q3"F 0U2 4:W"N 4:W-1U2 0,4:W^[ ' '
 Q2"L 0U2 ' Q2-Z"G ZU2 ' Q2J F<
!R?E! ZJ F<
!S?E! 0L F<
!U?E! Z-.-Q5"L Z-.U5 ' Q5+.+1U2 @O!DEL!
!V?E! Q2"N G2 Q2"L ^SC ' F< ' .+^S+1U2
!DEL! Q2-1"L @O!ERR! ' Q2-1-Z"G @O!ERR! '
Q2-1,.X2 Q2-1,.K .-Q2+1U2 Q2"E %2^[ ' @O!B!
!X?E! @EW// G* ^YK ^S"E @O!ERR! ' @ER// G* ^YK ^S"E @O!ERR! ' 0,6:W^[ Q5P F<
!Y?E! !4F! Q3"T Q5@I// | 4:W-1-."E 7M5 32768W 0,4:W^[ | .+1,4:W^[ ' ' F<
!AE! !BE! Q7&2-1*Q5U5 Q6"E 0U7 .U8 0L
 Q8-.%6< 0A-32"L 0A-27"N 0A-9"E 6-(Q7&7)%6^[ -2U7 ' %6^[ %7^[ ' ' %7^[ C > '
 Q5L -Q6U9 0U7 Q6< .-Z; 0A-32"L 0A-13"E 0; '
 0A-27"N 0A-9"E 6-(Q7&7)%9^[ -2U7 ' %7^[ %9^[ ' ' %7^[ C %9"G R ' Q9; >
 0U2 0U4 @O!C!
!CE! Z-.-Q5"L Z-.U5 ' Q5C F<
!DE! .-Q5"L .U5 ' Q5R F<
![CE! !29F! -1W -2U6 128#64M3"L @O!CM9! '
 Q7-^^A"E @O!UPS! ' Q7-^^B"E @O!DNS! '
 Q7-^^Q"E @O!EQE! '
 Q7-^^?"N Q7-^^["N Q7-^^O"N Q7U1 @O!CM9! ' ' '
 64M3"A Q7&95U7 ' Q7-^^V"E -^S< -.; R > F< '
 Q7-^^Q"E @O!EQE! '
 Q7-^^A"E !UPS! !5F! -(2:W*Q5)L F< '
 Q7-^^B"E !DNS! !6F! 2:W*Q5L F< '
 Q7-^^P"E @^U2/L .-Z/ | Q7-^^T"E @^U2/-L -./ | @O!ERR! ' '
 < M2; -1W 128#64M3; > Q7"L 7M5 32768W ' F<
!CM9! ^^9U7
!CMD! 0,0X2 Q3"L @^U2/Q5/ ' Q3"G Q5"N @^U2/Q5/ ' :@^U2/</ '
 :@^U2%M% Q7:@^U2// Q3"G :@^U2/>/ '
!XEQ! -Q6"G ^^HM5 ' ]4 Q4ED ]4 Q4EU ]4 Q4ET ]4 Q4^R M2^[
 10U4 [4 ETU4 [4 EUU4 [4 EDU4 [4
 ^D 128,32768#16#8#1ET -1EU 1,0ED Q6"N Q6W ' F<
!25F! 10@I// 0,0X2 F<
!AC! @^U2/< ^E"T .U9 ZJ 12@I%% Q9J ' / @O!APN!
!ZC! Q5+1"E !34F! HK EK @^U4%Output killed, e% @O!XIT! ' @^U0// @O!XM0!
!CC! 0;
!ECE! -Q3U3
!EC! 64M3"A -1W -2U6 @O!CMD! ' @O!ERR!
!GC! 64M3-^^*"N Q7-^^_"N Q7"R | @O!ERR! ' ' ' @^U2%G% Q7:@^U2// M2 F<
!NC! @EW// G* ^YK ^S"E @O!ERR! ' @ER// G* ^YK ^S"E @O!ERR! '
 @^U2/Q5:@N%^EQ8%/ @^U4%File% @O!SAG!
!TC! !XC! Q7U6
 @^U2/Q2-1,./ 64M3-^^:"E :@^U2/:/ 64M3^[ ' Q7"A Q7&95-^^I+ ' 0"E @O!ERR! '
 :@^U2%X% Q7:@^U2// .+1U2 Q5L Q3"F 4:W"N Q2-1J 4:WU2 0,4:W^[ ' '
 .U7 Q2-1,.X4 Q2-1,.K G4 Q7J M2 ^^T&31-Q6"E @O!DEL! ' F<
!VCE! 5U2 Q3"F @^U2/Q8"E -1U8 | 0U8 '/ | @^U2/Q5U8/ ' @O!PRM!
!VC! Q3"F 3U2 @^U2/Q6^_U6/ @O!PRM! '
 Q5"L 2U2 1:WU3 -Q5U4 0:WU5
  Q4-1"E 24U4 Q5-4"E Q3-80"G QI-4"E 14U4 ' ' ' '
  Q4-10"L @O!ERR! ' Q4-24"G @O!ERR! '
  Q5-4"N Q4-24"N @O!ERR! ' @O!SCP! '
  Q4U7 2:W-Q4< %7^[ 27:^T ^^[^T Q7/10+^^0^T Q7-((Q7/10)*10)+^^0^T @^A/;H/
   ^^KM5 > ^^HM5 @O!SCP! '
 Q5#6-6"N 1U2 Q5U3 2:WU4 0:WU5
  Q3&1"N @O!ERR! ' Q3-10"L @O!ERR! ' Q3-132"G @O!ERR! '
  Q5-4"N Q3-80"G @O!ERR! ' '
  Q3-80"G Q4-14"G QI-4"E 14U4 ' ' '
  Q5"N ^^<M5 27:^T @^A/[?3/ Q3-80"G ^^H+32^T | ^^L+32^T ' '
  @O!SCP! '
 0U2 80U3 24U4 Q5-6"E @O!ERR! '
  Q5-4"E 1:W-80"G 132U3 QI-4"E 14U4 ' ' '
!SCP! @^U2/Q3,1:W^[ Q4,2:W^[ Q5,0:W^[/ @O!PRM!
!WC! Q3"T 32767U2 @^U2/Q5W/ | -1U2 @^U2// '
!PRM! 3:WU6 4:WU7 5:WU8 6:WU9 M2 Q6,3:W^[ Q7,4:W^[ Q8,5:W^[ Q9,6:W^[
 Q2-2"G F< '
 0:W"N ^^<M5 27:^T @^A/[H/
  27:^T @^A/[1;/ 2:W/10+^^0^T 2:W-((2:W/10)*10)+^^0^T ^^R+32^T
  Q2+1"N 27:^T @^A/[H/ 27:^T @^A/[64B/
   27:^T @^A/#5/
   27:^T @^A/[164C/ 27:^T @^A/[6/ ^^N+32^T '
  27:^T @^A/[H/ '
 ^^=M5 -1W Q2"L -1EJ-4"E 2,0ET 0,2ET ' 27:^T ^^Z^T 32768W ' F<
!YC! !YE! Q5"G @ER// G* ^YK ^S"E @O!ERR! ' @^U2/Q5< Y >/
 ED&2"E @EW// G* ^YK ^S"N @^U2/Q5< Z"N 0U3 ' Q3; Y >/ ' '
 -1U3 M2 0,6:W^[ Q3"F @O!ERR! '
 | ]4 Q4#2ED Q5"E 2,0ED ' EDU4 [4 1,0ED ' F<
!\C! Q5U7 Q3"F 64M3^[ ' @^U2/Q7\/ 32768U6 @O!XEQ!
!ZE! Q5"L 0,0X6 F< ' Q5-256"G @O!ERR! '
 Q5@^U6// Q5@:^U6// F<
!CHKPT! -1W 1Q6@^U6// 0Q6@:^U6// @I%~~/\~~% 13@I%% 10@I%% 
 ^^HM5 ^^KM5 10^T ^^KM5 ^^HM5 @^A/Checkpointing... 
/ [0 @ER// G* ^YX0 ^YK EC @EB/^EQ0/ ]0
 ^XU2 -1^X :@FN%~~/\~~
%%"F @O!ERR! ' Q2^X -1000W -3W F<
!32F! 0U5 -1U3 @O!FE!
!33F! -1U5 -1U3 @O!FE!
!FE! !26F! @EW// G* ^YX2 ^YK ^S"E @O!ERR! ' .U4 J 2:W< 13@I// 10@I// > J
  2:W/2-4L
  3:WU2 5:WU9 0,3:W^[ 0,4:W^[ 0,5:W^[ -1W Q2,3:W^[ Q9,5:W^[ 0,6:W^[
  J 2:WK Q4J 13^T 1,0ET 13^T 0,0X4 1:W/2-30< :@^U4% % >
 Q3"T Q5"L | :G4 @^A/Marking position "/ :G2 @^A/"/
  @I%~~/\~~% 13@I%% 10@I%% 13^T 10^T ' '
 Q5"G :G4 @^A/Closing out file "/ :G2 @^A/"/ EC 13^T 10^T '
 Q5"L | ZJ .U2 G2 Q2J :@FS%;^ED%%"S < ::@FS%^ED%%; > ' Q2J Q2,ZX2
  Q5"E ZJ @I%/FIND% ' :G4 @^A/Remembering file "/ Q2,ZT @^A/"/
  [1 0,0X1 :@EG/MEM/"S ZJ G* ^SC 0A-36"N ZK Q2,ZX1 :@EG/MEM ^EQ1/^[ |
  .+1,ZX1 ZK F| ' | :Q1"E -1EJ-5"E @EN/*.*/ :@EN//"S
  ZJ .U1 G* Q1J @S/[/ Q1,.-1K @FS/./]/ Q1J @S/]/ Q1,.X1 Q1,ZK ' '
  :@^U1%TECF% 0EJ+100\ .-2,.:X1 -3D :@^U1%.TMP%
  -1EJ-4"E :@^U1%<60>/MODE:#3000% | -1EJ-7"N :@^U1%;1/-CR% ' ' '
  EA :@EW/^EQ1/"S Q2,ZPW ' EF @EW// ' ]1 Q2,ZK 13^T 10^T '
 Q5"E 0,1ET @^U4%Position marked, e% @O!XIT! '
 Q5"G :G4 @^A/Re-editing  file "/ :G2 @^A/"/ :@EB/^EQ2/"U 0,1ET 7M5
  @I/?Can't find file "/ G2 HX4 HK :@^U4%", e% @O!XIT! ' Y 0,6:W^[ 13^T 10^T '
 Q3"T Q5"N :G4 @^A/Finding mark  in "/ @ER// :G* @^A/"/ ^XU2 -1^X :@FN%~~/\~~
%%"U 0,1ET 7M5 13^T 1,0ET ' Q2^X 13^T 10^T ' '
 0,1ET F<
!PE! .U7 .+1U2 Q4"N Q4U2 ' Q5L Q3"F 4:W"N Q7J 4:WU2 0,4:W^[ ' '
 Q2-1,.X7 Q2-1,.K G7 Q2U4 0U2 0U6 @O!C!
!RE! G7 F<
!ACE! @^U2/< /
!APN! Q5"E 1U5 :@^U2/1:/ ' :@^U2/A^[ ^E"F ^N:; ' >/ Q5"L M2 | Q5M2 ' F<
!BCE! .U9 Q5< @S/^EG1/; @S/^N^EG1/; R > ."E ZJ ' .+1U2 Q9J @O!DEL!
!NCE! ED&2"E @EW// G* ^YK ^S"N @O!ERR! ' ' @ER// G* ^YK ^S"E @O!ERR! '
 @^U2/Q5:@_%^EQ8%/ @^U4%Destructive file% @O!SAG!
!ZCE! !31F! @^U4%E% @EW// G* ^YK ^S"E Z"N @O!ERR!
 ' @^U4%No output, e% ' @O!XIT!
!CID! 0:W-8"E 1:WU3 2:WU4 |
 80U3 24U4 Q5-4"E 1:W-80"G 132U3 QI-4"E 14U4 ' ' ' '
 0:W-Q5"N Q5-2"E 4U5 ' 0U2 @O!SCP! '
 Q5"E 1:W-Q3"N 1U2 @O!SCP! ' 2:W-Q4"N 2U2 @O!SCP! ' |
 Q5-2"E ^^<M5 ' 27:^T @^A/[H/
 27:^T @^A/[64B/ 27:^T @^A/#5/ 27:^T @^A/[168C/ 27:^T @^A/[6/ ^^N+32^T
 27:^T @^A/[H/ Q5-2"E 27:^T @^A/[?2/ ^^L+32^T ' 32768W ' F<
!SIZ! 0U3 < 64M3"D Q3*10+Q7-^^0U3 | 0; ' > Q7-^^R"N F< ' 0:WU5
 1:W-Q3-1"L 2:W-Q4"E Q3-81"L F< ' Q5-6"E Q3-85"L F< ' '
   Q5-4"E 1:W-80"G F< ' ' ' '
 Q5-8"N Q3-10"L 80U3 ' Q3-132"G 132U3 ' Q4-10"L 24U4 ' Q4-24"G 24U4 '
  Q5-4"N Q5-6"E Q3-84"G 84U3 ' | Q3-80"G 80U3 ' '
   Q4-24"N 24U4 ' | Q3-80"G Q4-14"G QI-4"E 14U4 ' ' ' ' '
 1U2 @O!SCP!
!EQE! -Q3U3
!QE! @^U4%Command: % [0 0U0 @^U0/Q7+2"E ^Y-2X9 | ^YX9 '/ [0 @^U0/G9/ @O!STG!
!EE! @^U4%Edit file: % [0 2U0 
   @^U0\^Y-2X2 ^YK EK :@EB/^EQ2/"F 1U0 7M5 Q6W ' @I/*/\
   [0 @^U0\@EW// G*\ @O!STG!
!SAG! Q5"L :@^U4% reverse% ' :@^U4% search: % [0 -1U0 @^U0/^Y-2X8/ [0 @^U0/G8/
!STG! -1W .U8 ZJ .U4 M0 ^SU0 2U6
< !F0! ^^HM5 ^^KM5 10^T ^^KM5 13^T 1,0ET 13^T :G4 2U7 10@^U0// Q4J
   < .U9 :@S/^EQ0/; Q9,.T 0,1ET ^^KM5 13^T 1,0ET 13^T %7^[ > Q9,ZX0
   Q7-Q6"L 0,1ET Q6-Q7< 13^T 10^T ^^KM5 > Q6-Q7< ^^AM5 > 13^T 1,0ET
   13^T Q7-2"E :G4 ' | Q7U6 ' :G0
  !F1! ZJ 64#32M3@I//
   Q7-3"E 0,32768ET 0U7 @O!F9! '
   Q7-10"E Q0"L @O!F8! '
    13^T 10^T 0,1ET ^^KM5 13^T 1,0ET 13^T %6^[ @O!F1! '
   Q7-21"E 0U7 @O!F9! '
   Q7-27"E Z-Q4-1+Q0"G -2A-27"E -1U7 @O!F9! ' ' '
   Q7"A Q7&95-^^N"E Z-Q4-2+Q0"G -3A-27"E -2A-^^?"N -2A-^^O"N @O!F2! ' '
    0,1ET ^^DM5 ^^KM5 -2D 27@I// -1U7 @O!F9! !F2! ' ' ' '
   Q7-127"E -D 0U0 Z-Q4"N -1AU7 -D Q7-27"E 32U7 ' 0,1ET Q7-32"L @O!F0! '
    ^^DM5 ^^KM5 1,0ET ' @O!F1! '
   Q0"L Z-Q4-2+Q0"G @O!F8! ' -Z+Q4-Q0A-27"N @O!F8! '
    Z-Q4-1+Q0"G -Z+Q4+1-Q0A-^^?"N -Z+Q4+1-Q0A-^^O"N @O!F8! ' ' ' '
  !F7! Q7^T @O!F1!
  !F8! Q4J -Q0D 0U0 0,1ET @O!F0!
  !F9! -Q6-1U6 0,1ET ^^HM5 Q7"F Q6W | Q0"L -2U7 ' ' Q4,ZX4 Q4,ZK Q8J 0; >
 ]0 Q7"F ]0 F< ' G4 M0 ^YK Q0 ]0 +1@O!SRH,CM9,B!
G2 -1U3 0U5 .+^SU8 .U9 ^Y:@FB/.MA^EA/"S 1U5 QL#255UL
  Q8,Q9:@FB\/L\"S @FR// -2%9 -4%L^[ ' ' Q8,Q9K
!ME! 0QM"N @O!ERR! ' Q3"F 0Q3U5 ' .U2 ZJ .U3
 G3 Q3J ::@FS/^@//^[ Q5"N 0@I// ' Q3J ZX3 ZK
 GM Q3J ::@FS/^@//^[ Q5"N 0@I// ' Q3J ZXM ZK Q2J F<
!SE! 0Q3"E QV+1"G .-Z"E F< ' L -2D @O!CRLF! ' ' @O!ERR!
!VE! Q3"F -1U5 ' Q5UV F<
!.CE! !CCE! !DCE! !FCE! !GCE! !HCE! !KCE! !LCE! !MCE!
!PCE! !QCE! !RCE! !SCE! !TCE! !UCE! !WCE! !XCE! !YCE! !\CE!
!.E! !GE! !HE! !KE! !LE! !NE! !UE! !WE! !ZE! ![E! !\E!
!.?E! !A?E! !B?E! !C?E! !D?E! !E?E! !F?E!
!G?E! !H?E! !K?E! !L?E! !Z?E! ![?E! !\?E!
!3F! !17F! !18F! !19F! !20F! !26F! !28F!
!ERR! 7M5 32768W F<
> @^U0/1/ !XM0! 0U7 0"N !XIT! -1U7 '
8,16ET ^^>M5 27:^T 0:W-4"L ^^Y^T 2:W+31^T 32^T |
2:WU4 ^^[^T Q4/10+^^0^T Q4-((Q4/10)*10)+^^0^T @^A/;H/ ' ^^KM5
13^T 1,0ET 13^T Q7"T :@^U4%xiting...% :G4 EX '
!BAD! ]4 Q4ED ]4 Q4EU ]4 Q4ET ]4 Q4^R
]4 Q4"N Q4,7:W^[ ' ]9 ]8 ]7 ]6 ]5 ]4 ]3 ]2 ]1 M0 ]0
$

! * * * * * * * * * * * * * * * * * * * !
!					!
!	     !!LOCAL.TEC!!		!
!					!
! * * * * * * * * * * * * * * * * * * * !
!					!
! Local symbol reordering macro		!
! Loads into Q-register L		!
!					!
! Local symbols are reordered starting	!
! at 10$, in increments of 10		!
! If an argument is given, it is used	!
! as the starting value			!
! If a negative argument is given, its	!
! absolute value is used and the whole	!
! page (rather than the LSB around dot)	!
! is reordered				!
!					!
! * * * * * * * * * * * * * * * * * * * !

@^UL~[0 [1 [2 [3 [4 [5 [6 [7 [8 [9 +0U0 Q0"E 5+5U0 '
10U3 ^D ^XU7 0^X EDU9 ED&4ED .U2 BU4 ZU5 Q0"L -Q0U0 @O!GO! ' Q2J 0U1
!LSBBEG! -:@S/.^EA^EAABL^ESLSB/"S .+^SU8 0L
    ::@S/^ES/^[ .-Q8"N 0L @O!LSBBEG! '
  Q8+1J .U4 ::@S/EN/"S -1U1 @O!GETEND! ' ' Q2J
!FNDBEG! -:@S/^EC:/"S .-2U6 0L ::@S/^ES/^[ 0A"D @O!FNDBEG! '
  !BEGSYM! .-Q6"L 0A"C C @O!BEGSYM! ' 0L @O!FNDBEG! ' Q4-."L .U4 ' '
!GETEND! Q2J
!LSBEND! :@S/.^EX^EXABL^ESLSB/"S ^S+.U8 0L
    ::@S/^ES/^[ .-Q8"N Q8+1J @O!LSBEND! '
  Q8J .U5 Q1"T @O!GO! ' '
Q1"T 7^T @^A/?Error, .ENABL LSB but no .DSABL LSB/ 7^T @O!EXIT! ' Q2-2U6
!FNDEND! Q6+2J :@S/^EC:/"S .-2U6 0L ::@S/^ES/^[ 0A"D @O!FNDEND! '
  !ENDSYM! .-Q6"L 0A"C C @O!ENDSYM! ' @O!FNDEND! ' .-Q5"L .U5 ' '
!GO! 1@^U8// 0U6
< Q4J @S/$:/; .-Q5; .-1U1 0L .,Q1X1
  \^[ C .-Q1"N Q1J -D G8 @O!DONT! ' Q4J %6^[
  < @S/^EQ1/; .-Q5;
    ^S-1A"C | Q5-ZU5 ^SD Q0\ G8 Q5+ZU5 ' > 10%0^[
  !DONT! >
J < @FS/^EQ8/$/; > Q6"E 7^T @^A/%Warning, / '
Q6:= @^A/ symbol/ Q6-1"N @^A/s/ ' @^A/ reordered/
!EXIT! @^A/
/ Q2-Z"G ZU2 ' Q2J Q3^R Q7^X Q9ED ]9 ]8 ]7 ]6 ]5 ]4 ]3 ]2 ]1 ]0~

! * * * * * * * * * * * * * * * * * * * !
!					!
!	    !!FMTMAC.TEC!!		!
!					!
! * * * * * * * * * * * * * * * * * * * !
!					!
! The MACRO-11 source formatter		!
! Loaded into Q-register M		!
!					!
! The number in Q-register L controls	!
! the operation of this macro		!
!					!
! Low byte:				!
!	251 = code in lowercase		!
!	255 = force code uppercase	!
!					!
! High byte:				!
!	column number for comments	!
!					!
! * * * * * * * * * * * * * * * * * * * !

32*256+255UL 0@^UM// @:^UM$Q7-^^;"N Q7@I// ' .U3 0U5 0UM
0^Q+.,.:@FB/;/"U 4U5 ^^;*256+^^.UM 0^Q+.,.:@FB/./"S 4#2U5 ^^;*256+32UM
::@S/^EA^EA^EA^EA^EA^ES/"S Q3-.+1"G ^SC
 ::@S/ASCI/"U ::@S/TITLE/"S F| '
 ::@S/SBTTL/"S F| ' | 0U5 0UM ' ' ' ' '
Q3J Q7"V Q5&QL"N -D Q7-32@I// ' '
Q7-^^;"E @I/;/ Q5"N 0^Q+1"N .-Z"E 13@I// 10@I// 2R '
::@S/^M^J/"S 3R <0^Q; R ::@FS/^ES//; >
0L 0U3 ^Q-3<%3^[ 0A-9"E -Q3&7%3^[ ' C>
QL/256-Q3U3 Q3"G Q3+7/8<9@I//> | 32@I// ' C ' ' '
0U5 0UM ' Q5&QL#8M3^[$
^[^[ [0 [1 10U0 0U1 ^D ET&128"E @^A/VTEDIT.TEC loaded into Q-Reg I
LOCAL.TEC loaded into Q-reg L
MACRO formatter loaded into Q-reg M
/ ' ET&(512#128)-(512#128)"E 1U1 Z#^E"E -1U1 @EW// G* Z"N HK 1U1 ' @ER// G*
Z"N HK 1U1 Y ' ' 128,0ET ' Q0^R ^[^[ @EI// Q1"E ]1 ]0 | Q1 ]1 ]0 MI ' ^[^[

Newsgroups: alt.lang.teco