To: The Amiga public. From: Mike Rieser (riesermc@mentor.cc.purdue.edu) I would like to express my thanks and appreciation for the fine work Steve Kirkendall has done on the Elvis program. Any thanks for it's many working features should be expressed to him first. Thanks Steve! Sincerely, Mike Rieser Compiling The Amiga version of Elvis was done using Manx Aztec C 5.2b. For the port to AmigaDOS 2.04, I tried to use as many Native AmigaDOS calls as I could. This should increase Elvis's chances at being compiled with other compilers. DICE seems to have a different default char type. You may need to use the UCHAR() macro in tio.c. For the port to AmigaDOS 1.3, I tried to make sure the program was at least usable. Many features are missing, most notably running commands in subshells. Also, what I could get working, I used Aztec functions to support them, so this part is a little more compiler dependent. Aztec is compatible with the SAS libcall #pragma. I personally prefer using the includes that come from Commodore over the ones supplied with Aztec, but for people with a straight Aztec installation, I went with the default names for the Aztec pragmas. One include you'll need is its a common include when porting software just make yourself one. Its a two line file that saves a lot of hassle especially in the elvis source. So, make a directory where your includes are located called `sys' and in a file below that type: /* sys/types.h */ #include When setting environment variables (either local or global) for variables that specify a directory, make sure the variable ends in `:' or `/'. This saved from having to change much of the way elvis works. The default if TEMP and TMP aren't specified is "T:". The default if HOME is not specified is "S:". Under AmigaDOS 2.04 I have been able to support all documented features of Elvis. Under AmigaDOS 1.3 Elvis works, but is missing some of the more sophisticated features. Under both version of AmigaDOS the following features are supported: Elvis is clean of Enforcer hits. Elvis supports Global environment variables. Elvis works as a line editor and can read script files when named ex. (Needs testing.) Elvis supports most vi .exrc definitions, put them in elvis.rc in either s: or your HOME directory Elvis READONLY works for -r--d files, and when Elvis is named view. Elvis uses an internal TERMCAP entry by default. Elvis supports user defined TERM and TERMCAP environment variables. Elvis supports window resizing. Elvis works over an AUX: port, and has an internal TERM vt100-80 for this purpose. Elvis supports Function keys and Arrow keys. Elvis supports shifted Arrow Keys, and shifted Function keys too. Elvis can be told where to put its temp files via TMP or TEMP environment variables. Elvis can use any user defined shell. (csh, ksh, conman, etc) Elvis makes writes of no larger than 256 bytes to the console.device to prevent problems accompanying large writes. Elvis also turns off the cursor to speed output. Under AmigaDOS 2.04 the following features are supported: Elvis can be run. (ex. Run Elvis s:startup-sequence) Elvis supports filters via PIPE:. Elvis multitasks and runs programs Asynch. Elvis supports Local environment variables. Elvis supports tag lookup using an external tag program called ref. Elvis command line supports AmigaDOS regular expression and `*' wildcards via calls to MatchFirst, MatchNext. Elvis preserves file protection bits (eg s-rw--). Elvis will support 101 key keyboards. Elvis requires more than the standard 4000 byte stack. A stack of 10,000 bytes should be adequate. Elvis has two support programs that notice and recover files from its temporary files: elvprsv and elvrec. By default Elvis uses T: for its temporary file, but most people have T: assigned to RAM:T. Not very useful if the system reboots, since files in this area are not recoverable after a system crash. And if you assign this to a hard drive, you run the risk of corrupting your drive if the system resets during a write operation. Based on this, you may want to change the $TEMP variable to use a recoverable area such as RAD: or VD0:. There is no problem with using RAM:T other than you won't be able to recover changes to a file. Remember Elvis doesn't rewrite or delete the original file until you tell it. So, even if a crash occurs all you should lose are the in memory changes, not the original file. All this talk of system crashes is not to be taken that Elvis is buggy. Only, that since it is an editor it is prone to being used by developers who do occasionly crash their machine while debugging programs. Sincerely, Mike Rieser PS I hope you enjoy using Elvis, and if any bugs are found peculiar to the AmigaDOS port, please notify me via e-mail. riesermc@mentor.cc.purdue.edu or 2410 Happy Hollow Rd, Apt D-10 West Lafayette, IN 47906-1722