aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2025-05-04 20:07:09 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2025-05-04 20:10:03 +0300
commitc162a9dffda0154a473188a2727ef06486cab24e (patch)
tree7a67b2952fd5bdb34e78e1d3400646570842ac19
parent90f2294be85e5f1a2fdbc6826c6cb8d10965b7ac (diff)
downloadvideoteco-fork-c162a9dffda0154a473188a2727ef06486cab24e.tar.gz
added a new README markdown file
The original README is renamed to README.OLD.
-rw-r--r--README.OLD (renamed from README)0
-rw-r--r--README.md104
2 files changed, 104 insertions, 0 deletions
diff --git a/README b/README.OLD
index 4fbe480..4fbe480 100644
--- a/README
+++ b/README.OLD
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..13056be
--- /dev/null
+++ b/README.md
@@ -0,0 +1,104 @@
+# Video TECO: Robin Haberkorn's fork
+
+This is a fork of Paul Cantrell's and Joyce Nishinaga's
+Video TECO, as first [published on Sourceforge](https://sourceforge.net/projects/videoteco/).
+Video TECO is a graphical interactive dialect of the
+Text Editor and Corrector (TECO) for UNIX and VMS.
+
+This fork has the following extensions compared to the last
+version published by Paul Cantrell in 2007
+([v6.4](https://github.com/rhaberkorn/videoteco-fork/releases/tag/v6.4)):
+
+* Ported to [real-mode MS-DOS](#MS-DOS%20port)!
+* Fixed file backups.
+* Avoid warnings and compatibility tweaks for newer C compilers (GCC/Clang) and current
+ versions of Linux and FreeBSD.
+ Actually, this fork currently requires some C99 feautures - but this might be reversed.
+* Fixed possible memory corruptions.
+* Reduced memory usage.
+* `EC` command can be used both to insert stdout at the current buffer
+ position and pipe portions of the buffer through the external process.
+ The semantics are [SciTECO-compatible](https://rhaberkorn.github.io/sciteco/sciteco.7.html#Execute%20operating%20system%20command%20and%20filter%20buffer%20contents)
+ (but it was first implemented in this fork).
+ There is also a dumb non-UNIX implementation that works with temporary
+ files, that's currently only used for the MS-DOS port.
+* Control characters are echoed in reverse video just like in SciTECO.
+* Fixed echoing control characters on the end of lines.
+ Or was it broken only at the end of the document?
+ Anyway, it's fixed now.
+* Code documentation using [Doxygen](https://doxygen.nl/)
+* Added the [original manual](doc/TECO Manual V4/TECO Manual V4.html) to the repository.
+
+Video TECO is the main inspiration of [SciTECO](https://rhaberkorn.github.io/sciteco) and most
+development and innovation nowadays takes place there.
+Video TECO still remains interesting for legacy and space constrained systems as it has even lower
+system requirements and almost no external dependencies (except for terminfo/termcap).
+Also, Video TECO supports [split screen modes](https://www.copters.com/teco.html#RTFToC132),
+that will probably never be added to SciTECO.
+Any new features will be SciTECO-compatible if possible.
+
+![Split screen mode](doc/TECO%20Manual%20V4_files/teco_EP.gif)
+
+The original README can be found in [README.OLD](README.OLD) and contains
+`~/.teco_ini` examples.
+
+## MS-DOS port
+
+This fork also compiles for real-mode 16-bit MS-DOS - in fact it will even work on 8088/8086
+processors.
+It has been tested on MS-DOS 6.2, [FreeDOS](https://www.freedos.org/) 1.4 and
+[SvarDOS](http://svardos.org/) (DR-DOS).
+The port contains Long File Name (LFN) support and should also be useful
+on Win9x (Windows 95-Me) systems.
+Binaries can be downloaded in the [Releases section](https://github.com/rhaberkorn/videoteco-fork/releases).
+
+It currently only compiles with the [Open Watcom v1.9](https://github.com/open-watcom/open-watcom-1.9)
+compiler.
+It can be compiled both from DOS and Linux hosts if the environment is
+set up correctly (`. owsetenv.sh`):
+
+ wmake -f Makefile.wcc
+
+### Features and limitations
+
+* Being ported from UNIX, it outputs escape sequences and requires
+ [ANSI.SYS](https://en.wikipedia.org/wiki/ANSI.SYS),
+ [NANSI.SYS](http://www.kegel.com/nansi/) or
+ [ANSIPLUS](http://www.sweger.com/ansiplus/).
+ There is special NANSI.SYS support, so that driver is preferred.
+ Video TECO has a builtin termcap "database", but you can
+ set the `TERMCAP` environment variable to a custom termcap definition file
+ to tweak definitions.
+* The console size/resolution is automatically detected.
+* It supports the same Csh-like wildcard expansions as on UNIX for
+ command-line parameters.
+* DOS linebreaks (CRLF) are automatically normalized to LF in the buffer unless
+ you specify the `-8` command-line parameter.
+ This is similar in spirit to but much more primitive than
+ SciTECO's [automatic EOL translation](https://rhaberkorn.github.io/sciteco/sciteco.7.html#BUFFER%20RING).
+ It relies on Watcom libc features.
+* The initialization file is called TECO.INI and should be located in the same directory as TECO.EXE.
+ If Video TECO fails to locate it, you can define the `VTECO` environment variable to
+ point to the installation directory (e.g. `set VTECO=C:\VTECO`).
+ See [README.OLD](README.OLD) for macro examples.
+* [Open Watcom v2.0](https://github.com/open-watcom/open-watcom-v2) is not yet supported -
+ generated binaries are still broken.
+ The v2.0 version is obviously not mature enough.
+* Programs executed via `EC` should not print to stderr as it will confuse the
+ display.
+ This is hard to prevent though on DOS.
+* For a real-mode DOS application the binary is relatively large.
+ There are of course much smaller editors written in assembly.
+
+### TODO
+
+- [ ] Re-evaluate Video TECO's lookaside buffers.
+ But they probably don't make sense considering the memory constraints.
+- [ ] Dosbox has problems with drawing the command line cursor.
+ Obviously its ANSI.SYS emulation attaches attributes to character cells,
+ so a moving reverse `' '` leaks the attribute to the preceding or following
+ cell.
+ It also cannot deal with more than 25 rows.
+ But perhaps it's not so important to support Dosbox.
+- [ ] Command line help (`-h`)
+- [ ] SvarDOS package