Ah, that brings back memories. Ever see a TECO manual? It was about three
inches thick, as I recall (for a text editor!)
-----Original Message-----
From: Pete Peterson <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>; [EMAIL PROTECTED]
<[EMAIL PROTECTED]>
Date: Wednesday, May 24, 2000 9:55 AM
Subject: Re: world's first write-only language != FORTH
>
>Nope, Forth was definitely not the first. There used to be a text editor
>called TECO, originally developed on the DEC PDP-1 computer. You could
>write TECO macros (really programs) to do virtually any kind of text
>processing you want. They weren't hard to write, but weren't very easy
>to read, even with a lot of comments. I attached an example below for
>your amusement. The things enclosed in exclamation points are (usually)
>comments. This is a very simple one by TECO macro standards, but was
>the first example I managed to dredge out. :-)
>
>Note the "^" in "^u" is really a caret -- the other "^" things are
>CTRL characters.
>
>
> pete peterson
> GenRad, Inc.
> 7 Technology Park Drive
> Westford, MA 01886-0033
>
> [EMAIL PROTECTED] or [EMAIL PROTECTED]
> +1-978-589-7478 (GenRad); +1-978-256-5829 (Home: Chelmsford, MA)
> +1-978-589-2088 (Closest FAX); +1-978-589-7007 (Main GenRad FAX)
>
>
>> Date: Wed, 24 May 2000 07:18:08 -0500 (CDT)
>> From: [EMAIL PROTECTED] (Dave Ihnat)
>> To: [EMAIL PROTECTED]
>> Subject: Re: Samba 2.07
>>
>> Niclas Sodergard DC wrote:
>>
>> > BTW, if you think Perl is hairy don't look at postscript :-).
>>
>> Much closer to FORTH, which when I first encountered it, I dubbed "the
>> world's first write-only language."
>> --
>> Dave Ihnat
>> [EMAIL PROTECTED]
>
>
>!Diabset.tec rep 10-MAY-82 07:02!
>!modified to count unequal tabs properly 01-OCT-82 13:48!
>!teco macro does setup for Diablo printer!
>!sets characters per inch, lines per inch, margins, and tab stops!
>!This version has control sequences for Bedford Computer Systems version
of!
>! the Diablo printer (the one attached to the 11/70) and for normal!
>! Diablo 16XX or 630!
>etu1 et#1et [1 7:wu1 0,7:w [1 0:wu1 [1 2,0:w !set vt100 as vt52 mode!
>^A^[H^[JDiablo setup routine: Answer questions -- follow responses with
Carriage Return
>^A
> !m1 gets a number from the keyboard and returns it-- number terminated
by non-numeric character!
>@^u1`[0[1[2 .u1 m5 .u2 q1j \u0 q1,q2k q0 ]2]1]0`
> !m2 throws away any left-over characters in keyboard buffer!
>@^u2` ET#32ET <-1-^T;> 32^_&ETET `
>@^u3/ 27^T ^^I^T 27^T ^^M^T 13^T 27^T ^^J^T/ !m3 erases previous line
from screen!
>@^u4` < ^T-10"e 0; ' > ` !m4 waits for line feed!
>@^u5/ !read string from terminal into buffer!
> m2 [0 <^Tu0 q0-13"e ^T 0;' q0-127"e ."n -1d 8^T32^T8^T'' q0-127"n
q0i^['>]0/
>
>m2 ^AIs the file going to be printed on the strange Diablo printer in the
>Facilities Operators Area? (y/n) ^A
>^T#32-^^y"n !set up for Diablo 16XX or 630 format!
> @^ua`^[1` !tabset sequence! @^ub`^[9` !set left margin sequence!
> @^uc`^[0` !set right margin! @^uj`
>^[` 10:^uj^[ !crlf, reverse lf sequence!
> @^ud`^[2^[^I^A^[9^[^IU^[0` 13:^ud^[ !clear all margins and tabs sequence!
> 27^ue^[31:^ue^[13:^ue^[ 27^uf^[31:^uf^[11:^uf^[ !ge for 10 cpi, gf for 12
cpi!
> 27^ug^[30:^ug^[9:^ug^[ 27^uh^[30:^uh^[7:^uh^[ !gg for 6 lpi, gh for 8
lpi!
>| !set up for Bedford Computer Systems format!
> @^ua`^[1` !tabset sequence! @^ub`^[.` !set left margin sequence!
> @^uc`^[/` !set right margin! @^uj`
>^V` ! crlf, reverse lf sequence!
> @^ud`^[;^[&` !clear all margins and tab stops sequence!
> @^ue`^[)` @^uf`^[*` !ge for 10 cpi, gf for 12 cpi!
> @^ug`^[<` @^uh`^[=` !gg for 6 lpi, gh for 8 lpi!
>' !qa is left margin position, qb is right margin position!
>@^ui` 13@i~~ qa<i ^[> gb qb-qa<i ^[> gc gj` ! set margins!
> m4
><^AName of file: ^A m5 hx6 hk @:eb/^Eq6/u6 -1-q6; ^A Can't open ^A :g6 ^A
^A>
><^Aspecify # of characters per inch (10 or 12) ^A m1uc
>qc-10"e ge 0; | qc-12"e gf 0; ' ' m3 >
><^Aspecify # of lines per inch (6 or 8) ^A m1uc
>qc-6"e gg 0; | qc-8"e gh 0; ' ' m3 > gd 13i^[^M
>^AMargin and tab positions are to be specified in character positions
>^A <m2 ^Aleft margin = ^A m1ua qa"g qa-(8*qc)"l 0;' ' m3 >
><m2 ^Aright margin = ^A m1ub qb-qa"g 0;' m3 >
>^AWould you like tab positions absolute or relative to margins?
> (a = absolute; other response = relative) ^A ^T#32-^^au0 m4 q0"n mi'
>^ADo you want uniform tab spacing ? (y/n) ^A m2 ^T#32-^^y"e
> m4 ^ATab stop separation = ^A m2 m1u1 (qb-qa)/q1< q1< @i` ` > ga > gj
q0"e mi'
> | m4 ^A
>Specify tab positions (separate with commas... end with Car Ret)
>^A .u1 m5 .u2 q1j .,.x6 q0"e qau5 | 0u5' <\u3 q3-q5"l ^ATabs must be within
margins -- aborting
>^A hkekex'
> q3-q5<:@^u6` `> .u6 ga q6,.:x6 q6,.k
::s^Es^[ ^[ ::s,^[ ^[ ::s^Es^[ .-q2"e 0; '>
>q1,q2k g6 q0"e mi ' ' q0"n 13@i// '
>^A^[H^[J^A ]1^[ q1,0:w ]1^[ q1,7:w ]1^[ q1et
>a ex^[^[
>
>
>--
>To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe"
>as the Subject.
>
--
To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe"
as the Subject.