Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
TECO (text editor)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==History== TECO was originally developed at MIT<ref> {{cite web |title = Summary of TECO commands |url = http://www.bitsavers.org/bits/DEC/pdp1/papertapeImages/20031202/MIT_TS_box1/_text/tecoBlurb.txt |version = From a collection of MIT PDP-1 paper tapes at the Computer History Museum |access-date = 2007-09-12 |url-status = dead |archive-url = https://web.archive.org/web/20080118030225/http://www.bitsavers.org/bits/DEC/pdp1/papertapeImages/20031202/MIT_TS_box1/_text/tecoBlurb.txt |archive-date = 2008-01-18 }}</ref> in around 1963 by [[Daniel L. Murphy]] for use on two [[PDP-1]] computers, belonging to different departments, both housed in MIT's Building 26.<ref> {{cite journal |last=Murphy |first=Dan |year=2009 |title=The Beginnings of TECO |url=http://tenex.opost.com/anhc-31-4-anec.pdf |journal=[[IEEE Annals of the History of Computing]] |volume=31 |issue=4 |pages=110–115 |doi=10.1109/MAHC.2009.127 |s2cid=18805607 }}</ref> On these machines, the normal development process involved the use of a [[Friden Flexowriter]] to prepare source code offline on a continuous strip of punched paper tape. Programmers of the big [[IBM mainframe]]s customarily punched their [[source code]] on [[punched card|card]]s, using [[key punch]]es which printed human-readable [[dot-matrix]] characters along the top of every card at the same time as they punched each machine-readable character. Thus IBM programmers could read, insert, delete, and move lines of code by physically manipulating the cards in the deck. Punched paper tape offered no such amenities, leading to the development of online editing. An early editor for the PDP-1 was named "[[Expensive Typewriter]]". Written by Stephen D. Piner, it was the most rudimentary imaginable line-oriented editor, lacking even search-and-replace capabilities. Its name was chosen as a wry poke at an earlier, rather bloated, editor called "[[Colossal Typewriter]]". Even in those days, online editing could save time in the debugging cycle. Another program written by the PDP-1 [[Hacker (programmer subculture)|hackers]] was [[Expensive Desk Calculator]], in a similar vein. The original stated purpose of TECO was to make more efficient use of the PDP-1. As envisioned in the manual, rather than performing editing "expensively" by sitting at a [[System console|console]], one would simply examine the faulty text and prepare a "correction tape" describing the editing operations to be performed on the text. One would efficiently feed the source tape and the correction tape into the PDP-1 via its high-speed (200 characters per second) reader. Running TECO, it immediately would punch an edited tape with its high-speed (60 characters per second) punch. One could then immediately proceed to load and run the assembler, with no time wasted in online editing. TECO's sophisticated searching operations were motivated by the fact that the offline Flexowriter printouts were not line-numbered. Editing locations therefore needed to be specified by context rather than by line number. The various looping and conditional constructs (which made TECO [[Turing-complete]]) were included in order to provide sufficient descriptive power for the correction tape. The terse syntax minimized the number of keystrokes needed to prepare the correction tape. The correction tape was a program, and required debugging just like any other program. The pitfalls of even the simplest global search-and-replace soon became evident. In practice, TECO editing was performed online just as it had been with Expensive Typewriter (although TECO was certainly a more feature-complete editor than Expensive Typewriter, so editing was much more efficient with TECO). The original PDP-1 version had no screen display. The only way to observe the state of the text during the editing process was to type in commands that would cause the text (or portions thereof) to be typed out on the console typewriter. By 1964, a special Version of TECO (''TECO-6'') had been implemented on the [[PDP-6]] at MIT. That version supported visual editing, using a screen display that showed the contents of the editing buffer in real time, updating as it changed.<ref> {{cite web |last=Samson |first=Peter |date=July 23, 1965 |title=PDP-6 TECO |url=https://dspace.mit.edu/handle/1721.1/5917 |version=Memorandum MAC-M-250 |pages=9 |hdl=1721.1/5917 |access-date=2007-09-12 }}</ref> Amongst the creators of TECO-6 were [[Richard Greenblatt (programmer)|Richard Greenblatt]] and [[Stewart Nelson (Hacker)|Stewart Nelson]].<ref> {{cite web |last=Edwards |first=Daniel J. |title=TECO 6 |url=http://www.transbay.net/~enf/lore/teco/teco-64.html |version=Memorandum MAC-M-191 |date=October 29, 1964 |pages=2 |access-date=2007-09-12 |archive-url=https://web.archive.org/web/20070928094124/http://www.transbay.net/~enf/lore/teco/teco-64.html <!-- Bot retrieved archive --> |archive-date=2007-09-28 }}</ref> At MIT, TECO development continued in the fall of 1971.{{Citation needed|date=October 2009}} Carl Mikkelsen had implemented a real-time edit mode loosely based on the TECO-6 graphic console commands, but working with the newly installed [[Datapoint]]-3300 CRT text displays.<ref name=datapoint> {{Cite web |title=For the Time Sharing Computer User: Datapoint 3300 |url=http://archive.computerhistory.org/resources/text/Computer_Terminal_Corporation/ComputerTerminalCorporation.Datapoint3300.1969.102646159.pdf |publisher=[[Computer Terminal Corporation]] |access-date=2009-10-27 }}</ref> The TECO buffer implementation, however, was terribly inefficient for processing single character insert or delete functions—editing consumed 100% of the PDP-10. With [[Richard Greenblatt (programmer)|Richard Greenblatt]]'s support, in summer of 1972 Carl reimplemented the TECO buffer storage and reformed the macros as native PDP-10 code. {{Citation needed|date=October 2009}} As entering the real-time mode was by typing {{keypress|cntl|R}}, this was known as control-R mode. At the same time, Rici Liknaitski added input-time macros ({{keypress|cntl|]}}), which operated as the command string was read rather than when executed.{{Citation needed|date=October 2009}} Read-time macros made the TECO auxiliary text buffers, called Q-registers, more useful.{{Citation needed|date=October 2009}} Carl expanded the Q-register name space. With read-time macros, a large Q-register name space, and efficient buffer operations, the stage was set for binding each key to a macro.<ref name=c2wiki> {{Cite web |date=August 16, 2010 |title=Teco Editor |publisher=[[c2.com]] |url=http://c2.com/cgi/wiki?TecoEditor |access-date=2013-08-17 }}</ref> These edit macros evolved into [[Emacs]].<ref> {{Cite web |date = January 1978 |title = An Introduction to the EMACS Editor |publisher = MIT |url = ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-447.pdf |archive-url = https://web.archive.org/web/20170706132101/ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-447.pdf |archive-date = 2017-07-06 |url-status = dead |access-date = 2016-11-15 }}</ref> The VMS implementation has a long history - it began as TECO-8, implemented in PDP-8 assembly. This code was translated into PDP-11 assembly to produce TECO-11. TECO-11 was used in early versions of VAX/VMS in PDP-11 compatibility mode. It was later translated from PDP-11 assembly into VAX assembly to produce TECO32. TECO32 was then converted with the VEST and AEST binary translation utilities to make it compatible with OpenVMS on the [[DEC Alpha|Alpha]] and [[Itanium]] respectively.<ref>{{cite web|url=https://github.com/tesneddon/tecox|access-date=2020-09-13|date=2019-06-10|website=github.com|title=tecox Readme}}</ref><ref>{{cite web|url=https://comp.os.vms.narkive.com/k3rjJnUI/vax-pdp11-compatibility-mode|title=VAX PDP11 Compatibility Mode|access-date=2020-09-13|date=2019-08-06|website=comp.os.vms.narkive.com}}</ref><ref>{{cite web|url=https://comp.os.vms.narkive.com/gxzatfU8/andy-museumpiece-goldstein-retirement#post26|title=Andy Goldstein retirement|date=2009-06-12|access-date=2020-09-13|website=comp.os.vms.narkive.com}}</ref> ===OS/8 MUNG command=== The OS/8 [[Concise Command Language|CCL]] '''MUNG''' command invoked TECO to read and execute the specified .TE TECO macro. Optional command line parameters gave added adaptability.<ref>{{cite web |url=http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp8/os8/AA-H608A-TA_os8teco_mar79.pdf |title=TECO Reference Manual digital equipment corporation}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)