Short: TECO (Text Editor and COrrector) Author: nowwithtreble@gmail.com (Franklin P. Johnston), port by uploader Uploader: polluks+aminet sdf lonestar org (Stefan Haubenthal) Type: text/edit Version: 200.24.1 Architecture: ppc-morphos URL: https://github.com/fpjohnston/TECO-64/blob/master/doc/TECO.md ## TECO-64 - README ### Description TECO-64 is: - A character-oriented editor, primarily used for manipulating text files. - A pipeline editor that can manipulate files of arbitrary size. - Capable of editing binary files. - Portable, because it is not bound to a system-specific GUI or other system-specific features. - Very small compared with other editors. - Easy to use for simple editing tasks. - A programming language that is powerful enough for complex tasks. ### History TECO (Text Editor and Corrector) was originally developed on the PDP-1 in 1962 by Dan Murphy, and later ported to many other operating systems, especially those using DEC (Digital Equipment Corporation) hardware, notably VMS, RSTS/E, TOPS, RSX-11, and RT-11. All of these implementations were written in hardware-specific assembler language. TECO C was a version created by Pete Siemsen in 1983, and subsequently developed by him and many others, most recently by Tom Almy and Blake McBride. This implementation made it possible for TECO to be ported to non-DEC operating systems such as Linux and Windows. And although six decades old, it remains in use today. ### Implementation TECO-64 is written in C, for maximum portability, and was inspired by Pete Siemsen's TECO C. Its command set is backwards-compatible with TECO C, as well as other TECOs. TECO-64 was written from scratch to take full advantage of current features of the C language and run-time library. ### Building TECO To compile and link TECO, type make or make teco An executable image will be created in the *bin/* directory, which can then be used to print a list of command-line options by typing bin/teco --help To build TECO with display mode support, type make display=1 TECO normally includes virtual memory paging, which is required for commands such as -P and -N. To disable this feature and use TECO as a simple pipeline editor, type make paging=std To print a list of all targets and options, type make help ### System Requirements Version 200 of TECO-64 was primarily developed on Linux, using the GNU toolchain. It has been also compiled and run on Windows and MacOS. TECO can be used in a command-line mode, as well as a display mode using *ncurses*. The commands that implement backwards paging and searching require virtual memory support, but TECO can be used as a simple pipeline editor on systems without virtual memory. Doxygen must be installed in order to use the *doc* target. PC-lint must be installed in order to use the *lint* and *lobs* targets. ### Version Numbers The highest version of any DEC TECO (TECO-11 and TECO-32) was 40. To avoid any conflict with those TECOs, since TECO macros sometimes obtain the version number (using the EO command) in order to determine what features are available, the initial version of TECO C was set to 100, with subsequent versions eventually reaching 147. For similar reasons, a baseline version number of 200 was chosen for TECO-64. This is the major version. A minor version and patch version also exist, per *github*'s guidelines. Values for all three can be accessed via the EO command, although only the major version is likely to be significant for TECO macros. ### Additional Documentation [TECO-64 Reference Manual](doc/TECO.md) - this is a work in progress that has been adapted, corrected, and updated from a user's guide and language reference manual titled *Standard TECO Text Editor and Corrector for the VAX, PDP-11, PDP-10, and PDP-8*, published by Digital Equipment Corporation in May 1990. ### Future Directions The following may be implemented in future versions of TECO. - Support for compilers other than *gcc*. - Support for other operating systems, especially OpenVMS. - An alternative buffer handling module (e.g., a rope buffer). - An alternative paging module (to allow backward paging when no virtual memory is available). ### Contact Information Any questions or comments, including bug reports and feature requests, may be sent to NowwithTreble@gmail.com.