You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
469 lines
18 KiB
469 lines
18 KiB
AAREADME.TXT |
|
|
|
This directory contains TECO-C, a version of TECO written in C. |
|
It was written in C so the author could move comfortably from VAX/VMS |
|
to various other machines, including MicroVaxes, which couldn't execute |
|
TECO-11 prior to VMS 5.0 because they don't support PDP-11 compatibility |
|
mode. TECO32, distributed with v5.0, solved this problem. |
|
|
|
TECO-C is meant to be a complete implementation of TECO as defined |
|
by the Standard TECO User's Guide, which is in file TECO.DOC. There is no |
|
manual for TECO-C itself, but the Standard TECO manual was the specification |
|
for TECO-C, so it serves as an excellent manual. TECO-C departs from the |
|
Standard manual in only a few places (like no video mode), listed in file |
|
PROBLEMS.TXT. There is quick-and-dirty "wall chart" of all TECO commands |
|
in file WCHART.TXT. |
|
|
|
This version of TECO-C runs under VMX/VMS, MS-DOS, AmigaDOS and Unix |
|
(SunOS, Ultrix and System V on a Data General Aviion). If you find bugs or |
|
have any comments about TECO-C, please contact |
|
|
|
Pete Siemsen Pete Siemsen |
|
645 Ohio Avenue #302 University of Southern California |
|
Long Beach, Ca. 90814 1020 West Jefferson Blvd. |
|
Los Angeles, CA 90089-0251 |
|
|
|
(213) 433-3059 (home) (213) 740-7391 (work) |
|
|
|
Internet: siemsen@usc.edu |
|
|
|
The following sections describe how to use or build TECO-C for |
|
different environments. The command line syntax is the same as the syntax |
|
for TECO-11 command lines. |
|
|
|
|
|
########################################################################### |
|
U N D E R V A X / V M S |
|
|
|
TECO-C was mostly developed under VAX/VMS. It compiles and links |
|
using VAX C 3.1 under VMS version 5.3. |
|
|
|
To set up: inspect and modify ZVLOGIN.COM and then add it to your |
|
LOGIN.COM |
|
|
|
To compile: inspect/edit ZVBLD.COM, then SUBMIT it |
|
|
|
To link: use the "LT" command (defined in ZVLOGIN.COM) |
|
|
|
To run: inspect/edit the symbol definitions in ZVLOGIN.COM |
|
Note: TECO-C uses the same command line syntax as TECO32 |
|
|
|
|
|
########################################################################### |
|
U N D E R M S - D O S |
|
|
|
TECO-C compiles/links under Turbo C v2.00 under MS-DOS 4.01 and |
|
Concurrent DOS 386 v3.0. |
|
|
|
To build: run MAKE on MAKEFILE.TC. to build TECO from scratch say: |
|
"make -fmakefile.tc -DALL". see MAKEFILE.TC for other make |
|
-D options. also see MAKETECO.BAT. |
|
|
|
To run: use TECO.BAT to edit a file or MUNG.BAT to run a macro, |
|
for example: TECO filename. |
|
|
|
|
|
########################################################################### |
|
U N D E R U N I X |
|
|
|
To compile and link: use the make utility on "makefile.sun" (for SunOS) or |
|
"makefile.ulx" (for Ultrix) or "makefile.dg" (for System V Unix |
|
on a Data General Aviion). |
|
|
|
To run: define aliases and environment variables in your .cshrc file. |
|
Here's an example, assuming my initialization file is named |
|
.tecorc and it's in my home directory, and my macros are in a |
|
directory named tecoc under my main directory. You'll have to |
|
change the directory names, of course. |
|
|
|
setenv TEC_INIT \$/home/sol/siemsen/.tecorc |
|
setenv TEC_LIBRARY /home/sol/siemsen/tecoc/ |
|
alias te '/home/sol/siemsen/tecoc/tecoc teco -nocreate' |
|
alias mung '/home/sol/siemsen/tecoc/tecoc mung' |
|
alias tma '/home/sol/siemsen/tecoc/tecoc make' |
|
|
|
After doing this, "te" runs tecoc. |
|
|
|
|
|
Unix Command line |
|
---- ------- ---- |
|
|
|
To make Unix users more comfortable, TECO-C uses Unix-like options syntax |
|
instead of the familiar "/" style used under VAX/VMS. The options can be |
|
abbreviated. They are (optional characters in square brackets): |
|
|
|
-in[spect] |
|
-noc[reate] |
|
-noi[ni] |
|
-nom[emory] |
|
-sc[roll] |
|
-scroll:nnn:SEEALL |
|
do nnn,7:W and 1,3:W |
|
|
|
|
|
-nop[age] |
|
Don't separate input into pages. Instead, treat form feeds as |
|
normal characters. |
|
+nnn |
|
where nnn is any number of digits. Go to line number nnn and set |
|
nopage. Note this uses the UNIX end of line convention for use with |
|
cc output &c. The non-unix line termination will still be used for |
|
nL and other intrinsic TECO commands, this just controls the |
|
starting line AT INVOCATION. |
|
|
|
|
|
EZ Mode Control Flag |
|
-- ---- ------- ---- |
|
|
|
To add functionality, TECO-C is sensitive to bits in an extra mode control |
|
flag in addition to the standard ones. Bits in the EZ mode control flag are |
|
used in different ways by different operating systems. Under Unix, bits in |
|
the flag have the following meanings: |
|
|
|
1 Mark Henderson, who did much of the Unix port, likes the way |
|
VAX/VMS keeps versions of files. VMS appends a semicolon followed |
|
by a version number to files, and has the PURGE command to clean |
|
out old versions of files. If this bit is off, TECO-C will handle |
|
file version numbers, appending the appropriate version number to |
|
file names. Mark supplied a "purge" program (distributed with TECO-C) |
|
for users of this feature. Setting this flag turns off the feature, |
|
to make TECO-C function as expected by the average Unix user. This |
|
flag is set by default. |
|
|
|
8 I don't know what this flag does. It only makes sense when TECO-C |
|
is compiled with CURSES support. |
|
|
|
16 If set, when it's time to beep, use an audio beep, and if it fails, |
|
then try a video flash. If clear, try a video flash, and if it |
|
fails, use an audio beep. This bit works only if TECO-C was compiled |
|
with CURSES support. This bit is off by default. |
|
|
|
32 If set, and split screen scrolling mode is on (see the 7:W command), |
|
TECO-C puts a line between the upper and lower scrolling regions. |
|
If off, don't display a line. This bit works only if TECO-C was |
|
compiled with CURSES support. This bit is off by default. |
|
|
|
128 If set, don't stop on form feeds when reading. If clear, a form |
|
fed in the input stream stops the read (the standard TECO style). |
|
This bit is off by default. |
|
|
|
256 If set, use Unix-style newline terminators. This means when files |
|
are read in, carriage-returns are not added to the end of lines, |
|
and when the user types the RETURN key, only a newline is entered |
|
into the command line (usually a carriage-return/line-feed pair is |
|
entered). Old macros (and old TECO users) may get confused if this |
|
bit is set, but it's required if CURSES support is compiled into |
|
TECO-C. |
|
|
|
2048 If set, use a bottom-tee symbol instead of a diamond to indicate |
|
the end-of-buffer. This bit works only if TECO-C was compiled with |
|
CURSES support. This bit is off by default. |
|
|
|
8192 If set, don't show CR in SCROLL mode (like standard TECO). If clear, |
|
show CR (a graphics character indicating a carriage return) when in |
|
SCROLL mode. This bit works only if TECO-C was compiled with CURSES |
|
support. This bit is on by default. |
|
|
|
|
|
Filename Memory |
|
-------- ------ |
|
|
|
TECO tries to remember the last file edited by TECO, so that after you've |
|
edited a file once, you can re-edit without having to type the file name |
|
on the command line. TECO-C implements this under Unix by writing and reading |
|
files named /tmp/tecoxxx.tmp, where "xxx" is the process id of the parent |
|
process. |
|
|
|
|
|
NOTE: There is another TECO in C, written by Matt Fichtenbaum, which |
|
runs under Unix. It is part of the DECUS TECO Collection. Contact Pete |
|
Siemsen at the above address for a copy. |
|
|
|
########################################################################### |
|
U N D E R A M I G A D O S |
|
|
|
To compile and link: see makefile.ami, (note: it needs tecoc.lnk) |
|
|
|
Comments from the author of the Amiga code: |
|
|
|
I've completed my TECOC port to the Amiga. It has been tested on an |
|
Amiga 1000 under AmigaDOS 1.3.2. My system configuration is: |
|
|
|
68000 microprocessor |
|
2.5 megs memory |
|
80 meg hard drive |
|
Old Amiga chip set |
|
SAS Institute C for the Amiga version 5.10 |
|
|
|
TECO-C runs in the CLI window it was started from, and it should run |
|
over a terminal hooked to an Amiga serial port as well. |
|
|
|
Adding 'W' command stuff would probably best be done by one of the |
|
termcap ports to the Amiga, however, TECO would have to handle |
|
SIGWINCH-like events, unless it is modified to open it's own window of |
|
a particular size without a resizing gadget. It wouldn't be to hard to |
|
write a terminal driver for Amiga windows using hard-coded escape |
|
sequences either, but then that would lose over a serial port. |
|
|
|
EzFlag |
|
------ |
|
|
|
The EZ flag is system-dependent. Under AmigaDOS, bits in the flag have the |
|
following meanings: |
|
|
|
128 If set, don't stop on form feeds when reading. If clear, a form |
|
fed in the input stream stops the read (the standard TECO style). |
|
This bit os off by default. |
|
|
|
256 If set, use Unix-style newline terminators. This means when files |
|
are read in, carriage-returns are not added to the end of lines, |
|
and when the user types the RETURN key, only a newline is entered |
|
into the command line (usually a carriage-return/line-feed pair is |
|
entered). Old macros (and old TECO users) may get confused if this |
|
bit is set, but it's required if CURSES support is compiled into |
|
TECO-C. |
|
|
|
|
|
|
|
|
|
########################################################################### |
|
F I L E S |
|
|
|
|
|
aareadme.txt this readme file |
|
baksrc.c backwards search |
|
bldstr.c build a string with string build constructs |
|
change.tec change macro squished |
|
change.tes change macro source. this macro allows you to |
|
replace one string with another in a group of |
|
files using match constructs. |
|
changes.txt contains teco-c release notes starting from |
|
version 1.00 (TVERSION = 100) |
|
chmacs.h ctype.h for teco-c |
|
clenup.c clean up before exiting teco-c |
|
clpars.h command line parsing macro, created by genclp.c |
|
clpars.tec command line parsing macro squished |
|
clpars.tes command line parsing macro source |
|
cmatch.c match character with match construct |
|
date.tec date macro squished |
|
date.tes date macro source. this macro displays the |
|
date and time. |
|
dchars.h define identifiers for control characters |
|
deferr.h define identifiers for error messages |
|
defext.h EXTERN decarations for global variables |
|
detab.tec de-tabify macro squished |
|
detab.tes de-tabify macro source. this macro converts |
|
tabs to spaces |
|
dir.tec "display directory" macro, in squished form |
|
dir.tes "display directory" macro source. This macro simply |
|
displays the directory. a wildcarded filename |
|
in the edit buffer can control what is displayed. |
|
docjr.c code common to ExeC, ExeJ, and ExeR |
|
doeves.c work code for EV and ES |
|
doflag.c changes a mode control flag (ED,EH,ES,ET,EU,EV,^X) |
|
dscren.h terminal types for 0:W command |
|
echoit.c display character in its printable form |
|
err.c display teco-c's error messages |
|
exea.c execute A |
|
exeats.c execute at-sign @ |
|
exeb.c execute B |
|
exebar.c execute | |
|
exebsl.c execute backslash \ |
|
exec.c execute C |
|
execcc.c execute control-caret ^^ |
|
execln.c execute colon modifiers : and :: |
|
execom.c execute comma , |
|
execrt.c execute caret ^ |
|
execst.c execute a TECO command string |
|
execta.c execute ^A |
|
exectc.c execute ^C |
|
exectd.c execute ^D |
|
execte.c execute ^E |
|
execti.c execute ^I |
|
exectl.c execute ^L |
|
exectn.c execute ^N |
|
execto.c execute ^O |
|
exectp.c execute ^P |
|
exectq.c execute ^Q |
|
exectr.c execute ^R |
|
exects.c execute ^S |
|
exectt.c execute ^T |
|
exectu.c execute ^U |
|
exectv.c execute ^V |
|
exectw.c execute ^W |
|
exectx.c execute ^X |
|
execty.c execute ^Y |
|
exectz.c execute ^Z |
|
exed.c execute D |
|
exedgt.c execute digit (0-9) |
|
exedot.c execute dot . |
|
exedqu.c execute double quote " |
|
exee.c execute E |
|
exeequ.c execute equals =, ==, and === |
|
exeesc.c execute escape |
|
exeexc.c execute exclamation point ! |
|
exeey.c execute EY |
|
exef.c execute F |
|
exefb.c execute FB |
|
exeg.c execute G |
|
exegtr.c execute greater than sign > |
|
exeh.c execute H |
|
exei.c execute I |
|
exeill.c "execute" illegal command |
|
exej.c execute J |
|
exek.c execute K |
|
exel.c execute L |
|
exelbr.c execute left-bracket [ |
|
exelst.c execute less than sign < |
|
exem.c execute M |
|
exen.c execute N |
|
exenul.c execute null ^@ |
|
exenyi.c "execute" not-yet-implemented command |
|
exeo.c execute O |
|
exeopr.c execute operator (+,-,(,#,/,&,^_,*) |
|
exep.c execute P (see singlp.c) |
|
exeprc.c execute percent sign % |
|
exepw.c execute PW |
|
exeq.c execute Q |
|
exeqes.c execute question mark ? |
|
exer.c execute R |
|
exerbr.c execute right bracket ] |
|
exertp.c execute right paren ) |
|
exes.c execute S |
|
exescl.c execute semicolon ; |
|
exet.c execute T |
|
exeu.c execute U |
|
exeund.c execute underscore _ |
|
exeusc.c execute unit separator character ^_ |
|
exev.c execute V |
|
exew.c execute W |
|
exex.c execute X |
|
exey.c execute Y |
|
exez.c execute Z |
|
findes.c find end of string |
|
findqr.c find q-register name |
|
flowec.c flow to end of conditional |
|
flowee.c flow to else part of conditional |
|
flowel.c flow to end of loop |
|
fmtmac.tec PDP-11 .MAC formatter squished |
|
fmtmac.tes PDP-11 .MAC formatter source. this macro does |
|
case formatting for PDP-11 macro (.MAC) source files |
|
format.tec FORTRAN formatter squished |
|
format.tes FORTRAN formatter source. formats the first part of |
|
a FORTRAN source line. |
|
genclp.c generates the command line parsing macro in clpars.h |
|
getara.c get area in edit buffer an "m,n" argument defines |
|
getnma.c get numeric argument off expression stack |
|
inccbp.c increments command buffer pointer |
|
init.c teco-c initializatin routines |
|
insstr.c insert string into edit buffer |
|
isradx.c is digit within current radix? |
|
ln2chr.c convert line-number to character-number (^Q) |
|
lowcase.tec convert edit buffer to lowercase macro, see upcase.tec |
|
makdbf.c make digit buffer, binary to ascii in current radix |
|
makefile.ami AmigaDOS make file |
|
makefile.cct CodeCenter under SunOS |
|
makefile.dg System V Unix make file (works on Data General Aviion) |
|
makefile.sun SunOS make file |
|
makefile.tc Turbo C make file (MS-DOS) |
|
makefile.ulx Ultrix make file |
|
maketeco.bat MS-DOS batch file to make teco. this is probably how |
|
the temdos.exe executable file was made. |
|
makprnt.tec make printable macro squished |
|
makprnt.tes make printable macro squished. this macro makes a |
|
string with embedded control characters printable |
|
makrom.c make room in Q-register for new text |
|
mung.bat MS-DOS batch to execute a teco macro from command line |
|
pg.mem a programmer's guide. it may be useful to anyone |
|
fixing bugs, adding features, or porting teco-c to |
|
a new environment. |
|
pkzip.rsp a PKZIP response file used to build TECOC.ZIP archive |
|
popmac.c pop macro environment off macro stack |
|
problems.txt contains notes about bugs and ideas |
|
pshmac.c push current macro environment on macro stack |
|
pushex.c push expression onto stack, try to reduce it |
|
rdline.c read a line |
|
rdpage.c read a page |
|
readcs.c read command string |
|
replac.c code for search and replace commands |
|
search.c code for most of the search comamnds |
|
search.tec search macro squished |
|
search.tes search macro source. this macro finds a string in |
|
a group of files using teco match constructs |
|
singlp.c does a single P command |
|
skpcmd.c skip over current command in command bufer |
|
squ.bat MS-DOS batch file to run squ.tec w/standard options |
|
squ.tec squish macro squished |
|
squ.tes squish macro source. this macro takes a teco macro |
|
source file and makes it as small and as fast (and |
|
as unreadable) as possible |
|
srclop.c search loop, handles loop arguments for search |
|
sserch.c do a simple search |
|
sub.tec ? |
|
tabort.c terminate teco-c |
|
tctlib.rsp a Turbo C TLIB response file used by makefile.tc |
|
teco.bat MS-DOS batch file to run teco-c |
|
teco.doc Standard TECO documentation from DECUS |
|
teco.tes teco initialization file |
|
tecoc.c the main source module, contains all the definitions |
|
of system-independent global variables, as well as |
|
comments explaining what they are. |
|
tecoc.exe the teco-c executable for VMS |
|
tecoc.h defines structures, general identifiers, and |
|
the in-line debugging scheme. |
|
tecoc.lnk link file needed under AmigaDOS (see makefile.ami) |
|
tecoin.tes teco initialization file |
|
temsdos.exe the teco-c executable for MS-DOS |
|
tst.bat MS-DOS batch file to run the test macros |
|
tst.com VMS command procedure to run the test macros |
|
tstbsl.tec -- |
|
tstcss.tec | |
|
tstequ.tec | these macros contain code which tests some |
|
tsto.tec | aspects of teco-c |
|
tstpw.tec | |
|
tstqr.tec | |
|
tstsrc.tec -- |
|
typbuf.c types a buffer on the screen, converting unprintable |
|
characters to printable as nescessary. |
|
type.tec type a file macro squished |
|
type.tes type a file macro source. this macro apparently |
|
types a file on the console with all kinds of |
|
wonderful options. |
|
typest.c types the erroneous command string for errors |
|
uminus.c unary minus (converts -C to -1C) |
|
unsqu.tec unsquish macro squished |
|
unsqu.tes unsquish macro source. this macro does some simple |
|
formatting of a squished teco macro to make it more |
|
readable (like indenting) |
|
upcase.tec convert edit buffer to uppercase macro, see lowcase.tec |
|
vrbmsg.h verbose forms of teco error messages |
|
vtedit.tec vtedit macro squished |
|
vtedit.tes vtedit macro source. humongous screen editor macro. |
|
note: this macro does NOT run under teco-c. |
|
wchart.txt contains a wall chart of TECO commands |
|
wrpage.c write a page |
|
zamiga.c AmigaDOS system dependent code. |
|
zfirst.c dummy module used if CHECKSUM_CODE is TRUE in zport.h |
|
zfrsrc.c do a forward search using VAX SCANC instruction |
|
zmsdos.c MS-DOS system dependant code |
|
zport.h portability header file. |
|
zunix.c SunOS (Unix) system dependant code |
|
zunkn.c UNKNOWN system dependant code (function stubs) |
|
zvms.c VAX/VMS system dependant code |
|
|
|
|
|
The W command does not work, but the EXEW.C file contains code |
|
to tell you what the command would have done if it had been executed. I used |
|
this to play with executing VTEDIT.TEC under TECOC in order to find bugs. |
|
|
|
I maintain the DECUS TECO Collection, a bunch of stuff relating to |
|
TECO. It includes sources for DEC's TECO-11 v39, three TECOs written in C, |
|
including ones for VAX/VMS, MS-DOS, SunOS (Unix) and Ultrix, the current |
|
Standard TECO manual, two EMACs-like macro packages and LOTS of macros. |
|
|
|
I you have something that you feel should be included in this |
|
collection, or if you would like to improve the software, please contact |
|
me at the above address. |
|
|
|
|
|
Pete Siemsen
|
|
|