ATP(1)

NAME
atp - read, reply, and archive QWK format mail packets.

SYNOPSIS
atp bbsname [.qwX]

where bbsname is the name of the QWK packet with extension omitted. The long form uses bbsname.qwX where X is any valid filename character, typically the letter `k' or a digit in the range `0' to `9'.

DESCRIPTION
ATP is used for reading and replying to messages contained in QWK mail packets which are available through public access bulletin boards. ATP evolved from an earlier reader written by Rene Cougnenc which he called `AzerTyuioP' (the name `AzerTyuioP' is the top row of keys on a French typewriter). ATP has greatly enhanced and expanded upon the functionality of its predecessor. But like its predecessor, ATP still may be compiled for the French language. German is now also supported. ATP includes the Rich Salz and Simmule Turner Emacs-style command line editor with command history. Note that this is covered by a separate copyright.

A BBS will typically carry topical news conferences. A user may dial up a BBS, start a program know as a mail door, and quickly gather the current news into a file called a ``QWK packet.'' Once this file is downloaded, an offline mail reader such as ATP processes it for reading and replying at one's leisure. There are several formats for offline mail packets but QWK is the most common. Some of the more popular QWK mail doors which produce these packets are Qmail, Markmail, Jimmer, and TQM. ATP can handle QWK packets produced by any of these doors so there is no need to worry which one to use.

When started, ATP will present you with a command prompt. This prompt will show the current active BBS and the conference. At any time you may type `help' at the command prompt to receive a summary of commands. ATP also functions as a mini-shell allowing you to enter many common Unix commands at the prompt.

FEATURES
In addition to reading and replying to mail, ATP maintains archives of past messages. These can be reviewed at any time. As new QWK packets are loaded, they are immediately added to the archives. Pointers to the last read messages are maintained. Loading a new mail packet will not reset these pointers. Reading will resume with the last read message in each conference. By entering a number at the command line, ATP will move to that message number and display it. In this way you can move backward and forward among the messages at will. Typing `reset' resets the the message pointer, marking the current message as the last message read. The `clean' command provides a means of maintaining and pruning message bases.

ATP will support 8192 conferences per BBS. The limit is set for backward compatibility with some older mail doors. You may change this limit by recompiling ATP should the need arise. Your tagline file can hold many thousands of taglines, essentially no limit for most purposes. Taglines are stored in a the plain text file taglines.atp.

Other features include the ability to scan message headers, a tagline management system, support for FIDO or regular style taglines, personal mail notification and personal mail conference, the ability to search messages for strings, a separate conference for replies, kill and change security on replies, tagline selection by random, automatic, or direct means, hooks for a spelling checker, powerful command line editing with history recall.

ENVIRONMENT
ATP looks for three environment variables: and The environment variable must reflect the path to your command shell (under MSDOS and OS/2 this path would be called instead). The environment variable points to your home directory. Some command processors will automatically set for you. The environment variable should be the full path to a subdirectory where ATP will store its configuration files, normally a subdirectory under your home directory. Use a descriptive name such as `atpmail' or `qwkmail' for this directory. As you probably know, environment variables most often are set by adding entries to your command shell's startup file (.e.g. .profile or autoexec.bat).

CONFIGURATION
Before using ATP for the first time, you will have to edit its configuration file which you may call either .atprc or atprc. This file contains a list of information which tells ATP where to find your mail packets, what editor to invoke for entering messages, how many lines your screen has. Below is a typical configuration file. IMPORTANT! A space must reside on either side of the `=' sign for correct parsing to take place. After you have edited your atprc configuration file, don't forget to put it in the same directory as pointed to by the environment variable, or your home directory. If you have a Perl interpreter installed on your system, you can use the script atpdiag to check your installation and configuration. See atpdiag(1) for details.
# -------------------------------------------------------
# sample atprc ATP configuration file
#
user = PAUL DRAKE
editor = vile
reply =  /usr/spool
mail  =  /usr/spool
archiver = zip -jk
unarchiver = unzip -Lxjo
speller = ispell
ansi = on
bell = on
color = on
graphics = on
charset = latin1
screenlen = 25
screencol = 80
qlist = ls -lt *.qw? | cut -c 34- | less
blist = ls -lt blt* | cut -c 34- | less
tagstyle = fido
tagline = Why buy a cow when the milk is free?
autotag = on
workpath = /tmp
truncate = 50
pcb = on
header = off
#  end of sample atprc ATP configuration file
# ------------------------------------------------------

user
    Your name goes here. It must be spelled exactly as it appears on the bulletin boards where you are registered.

editor
    The name of the editor which you will use to edit your replies.

reply
    This is the path to your directory where you keep reply packets for uploading.

mail
    This is the path to your directory where downloaded message packets are kept.

archiver
    This is the name of the program used to prepare your reply packet for uploading. Normally this is zip. When using the Info-Zip version, the switches `-jk' tell zip to create archives without pathnames and to emulate PKzip. These switches aren't absolutely needed put could be helpful in certain situations. Please acquire the most recent versions of zip and unzip for your system which are compatible with the BBSs which you frequent. The Info-Zip package is highly recommended.

unarchiver
    This is the name of the program used to extract the data files from your QWK mail packets. Normally this would be unzip. The sample atprc assumes the freeware Info-Zip version of unzip. The switches `-Lxjo' tell it to extract files while junking path names, convert MSDOS file names to lower case, and to overwrite existing files without prompting. These switches may not always be necessary but may be helpful in certain situations. Use appropriate switches for the brand of unarchiver you are using.

speller
    This line defines the name of the spelling checker you wish to use to check the spelling of your replies. The program ispell is recommended because of its interactive design. It is available in source code form via anonymous ftp from

ansi
    This configuration switch can be set to either `on' or `off'. It defaults to `off' but most users should set this to `on'. This controls the placing of the cursor on the screen and other screen attributes. Note that if `ansi' is set `on' you must have a terminal capable of handling ANSI sequences. MSDOS users will want to add the line to their config.sys file in order to use this feature. Many common terminals support ANSI such as the popular VT102 and VT220 terminals. The Linux console also supports ANSI, as do many other PC unixes, and OS/2. So if you fall into any of these categories, please set `ansi' to `on'.

bell
    This configuration switch can be set to either `on' or `off'. It determines if ATP will use the terminal bell. If you desire silent operation, set bell to `off'.

color
    ATP will support color on ANSI terminals. Setting color `on' will enable ANSI color. You must have the ATP `ansi' variable set to `on' also. If you have a monochrome terminal you may find that setting color to `off' gives a more readable screen. Experiment and see.

graphics
    When graphics is set to `on' ATP will use VT102 line graphics characters to emulate the MSDOS line graphic character set. Linux users will want to set this `on'. If your terminal or system console is unable to display the VT102 line graphics set then set this `off'.

    If you want to see if your terminal is capable of displaying VT102 graphics, type the command `graphics' at the ATP command line. It will toggle this mode on and off, displaying a boxed message. If you toggle graphics `on' and instead of a pretty graphics box on a reverse field you view an ugly box composed of q's and a's then you may safely assume that your terminal will not support VT102 line graphics.

    Note: not all VT102 class terminals have the line graphics option. Note too that line graphics is independent of which character set you choose. If your terminal uses the MSDOS character set and displays it correctly, there is little point in choosing this option. However, just because your operating system is running on a PC, do not assume that is uses the MSDOS character set.

charset
    Most QWK packets use the MSDOS character set to represent foreign language and line graphics characters. If your system does then you should set charset equal `msdos' and `graphics' to `off'. However most Unix systems do not recognize the MSDOS character set mappings. If your terminal or console uses ISO standard LATIN1 character set (e.g. Linux) then you will want to set charset equal to `latin1'. If your system is unable to display any 8 bit characters you will want to set this to `7-bit' (8 bit characters will then be mapped to their closest 7-bit counterpart). Please see the file atprc for more details. Here is a table of some suggested settings:

    TABLE 1 CHARACTER SET OPTIONS FOR ATPRC VARIABLES
    system | charset | graphics
    Linux | latin1 | on
    VT102 | 7-bit | on
    generic | 7-bit | off
    OS/2 | msdos | off
    386bsd | msdos | off
    MS-DOS | msdos | off

screenlen
    This configuration setting tells ATP how many lines your screen uses. This depends on the type of video card which you are using and also on the type of terminal emulation which you have selected. Valid entries are in the range of 3 to 300. If ATP is unable to automatically detect your screen size, it will fallback to these values.

screencol
    This configuration setting tells ATP how many columns your screen uses. This depends on the type of video card which you are using and also on the type of terminal emulation which you have selected. Typical entries are 80 columns. Some terminals will support 132 columns too. If ATP is unable to automatically detect your screen size, it will fallback to the value you specify here.

qlist
    Used for listing QWK packets. This configuration entry is a command line which will be executed anytime you type `qlist' at the ATP prompt. ATP will change to your mail path directory and execute this command line. The example here when invoked will list all the QWK packets in your mail directory sorted by time and only displaying the size, date, and name of the packets. It is piped into `less' which is the GNU version of `more'. You may delete this entry or modify it if it doesn't do what you want. A simple default entry is already set internal to ATP.

blist
    ATP can display bulletins delivered with the mail packet. The `blt' command uses the string specified here, passing it to the shell to list your bulletins. You will want to modify this entry depending on your operating system. After you have viewed the list of available bulletins, view a bulletin by typing its name at the command line.

tagstyle
    This switch sets the default style used in your message taglines. It defaults to normal. By setting this to `atp will start up using FIDOnet style taglines. See later section on taglines for more information.

tagline
    This is used to set your persistent tagline which can always be called back immediately from the command line. See section on taglines for details.

autotag
    By default, ATP will randomly select taglines for your replies. The taglines are stored in the text file taglines.atp located in the same directory as your atprc. Automatic selection of taglines may be turned off from the command line or by setting autotag to `off'.

workpath
    This option is not usually needed. However, if you need the ATP work directory to be on some particular path or drive specify it here. OS/2 and MSDOS users can specify a disk drive by specifying the drive letter. See example in atprc.

truncate
    Under ATP there is a `clean' command that will put you into maintenance mode for your message bases. One of the options is to truncate a message base to the most recent messages. This option sets the default truncation length. This truncate option can be changed during the maintenance process if the need should arise.

pcb
    The BBS known as PCBoard supports long subject lines as of PCB version 15. If you would like to have long subject lines then set this option on. Note that not all QWK readers will be able to read your entire subject line because most readers are limited to 25 characters. But generally there should be no problem. Note that if you use the RIME network that you should not use a long subject line when entering a routed message, i.e. a message where the first line must read something like If this option is enabled and you enter a reply subject line less than 25 characters in length, behavior defaults to normal QWK conventions.

header
    When replying to a message, ATP generates a reply header which mentions the author of the message being responded to. If you wish to have no headers then set the header option off in your atprc.

SHELL SYSTEM COMMANDS
When at the ATP command prompt, you will be able to execute many common Unix commands directly: cat, cd, cp, echo, df, du, less, ln, lpr, ls, man, mkdir, more, mv, pwd, cwd, rm, rmdir, set, sort, sync.

Under the MSDOS version the following commands are available: cd, chkdsk, copy, del, dir, md, mem, more, mkdir, print, rd, rmdir, set, sort, type, xcopy.

COMMANDS SUMMARY
What follows is a summary of the commands available inside ATP. The most important are: `load', `review', `j',`n',`r', `e', and `qscan'. These will be presented first. Remember that you may always type `help' for a brief summary of commands.

help
    The `help' command will display a brief summary of available commands.

load bbsname
    This command is used to get a QWK packet from your spool directory and load it into the reader for viewing. It takes one argument, the name of the BBS or the explicit name of the mail packet. If you just give the name of the BBS, ATP will search for the packet named bbsname.qwk. You may also name the packet explicitly (e.g. bbsdeguy.qwk, joesbbs.qw5, etc.).

    Example:

review bbsname
    The review command is used for reviewing the BBS archives previously loaded into the reader. It takes one argument, the name of the BBS without any extension. DO NOT add the `qwk' file extension with this command. The short form of this command is `rev'.

    Example:

<cr>
    A carriage return alone will read the next message.

j   [ conference_name | conference_number ]
    The `j' command stands for `join' and it is used for changing conferences. It must be followed by either the conference name or the conference number.

n   The `n' command will join the next active conference.

a   The `a' command will display the current message again.

+   The `+' command will go forward one message.

-   The `-' command will go backward one message.

r   The `r' command is used to enter a reply to the current message. You may redirect a reply to a different message area by following `r' with the name of the new area where the reply should be posted. When entering a reply, you are always prompted to allow changing of the subject, address, and security information. When prompted for security you may answer `n' or `r' which respectively stand for `none' and `receiver only' (private message) security.

x   The `x' command is used to crosspost a reply to another area. To use this command, go to the reply conference and select the reply you wish to crosspost. Type `x' followed by the conference number or conference name where you wish to post a new copy of the reply.

c   The `c' command is used to enter changes to a previous reply. This command Is valid only in the replies conference. It will re-invoke the editor for the current message. The old message is killed along with its tagline. The tagline active at the time this command was invoked will be the new tagline for the edited reply. Note that that in the context of the reply conference, the `e' command has the same effect as the `c' command—change a reply.

p   The `p' command is used to toggle message security between `private' and `public' for your reply messages. When a message is private, a warning to this affect will be highlighted in the bottom right of the message header.

e   [ conference_name | conference_number ]
    The `e' command with no arguments will enter a message in the current conference. Again, choose your tagline before entering your message. The `e' command may be followed optionally by the name or number of the conference where you would like to enter your message. Upon invoking `e' you will be presented some choice as to subject, addressee, and message security.

    Note that this command behaves differently if the current conference is either the REPLY or PERSONAL conference. If you are in the PERSONAL message conference, this command is completely disabled because it makes no sense to enter a message in the personal conference (you CAN reply to messages though--use the `r' command). If you are in the REPLY conference, this command will re-edit the current message. It does not enter a new message.

head
    The `head' command will toggle the automatic reply header on and off. The reply header is a sentence at the top of a quoted reply message which will mention the name of the author of the quoted message, who it was written to, and on what date it was written. If you don't want this style in your replies then you may turn it off with the head command or just edit it out when composing your reply.

reset
    The `reset' command is used to set the conference message pointer to the highest message which you have read. It looks at the value of the current message and resets the highest read pointer to that value. This is useful if you wish to quit in the middle of re-reading a conference but would like to save your place marker.

scan
    Will scan forward from the current message displaying message headers. You will be prompted after each screen whether you wish to continue scanning.

qscan
    Quick scan is the same as scan except it will only display a single line abbreviated header.

conf
    The conf command will display a list of all available conferences on a particular BBS.

ts  The `ts' is text search command, an alias for `find', see below.

find
    The `find' command will search the current conference for any text that follows it. Wildcards are not supported, and it is not case sensitive. For example:

    	find paul drake

    will display messages containing the text ``Paul Drake'' or ``PaUl dRakE'' and so on. After finding some text, use the `next' command to repeat the search. Note that any spaces after the first one following `find' are significant. Thus,

    	find paul drake

    is NOT the same as

    	find      paul drake

next
    The `next' command is used to repeat the search initiated by the `find' command. If your version of ATP supports function keys, pressing F10 is equivalent to typing this command. To abort search, type control-C.

qlist
    The qlist command will display a list of all QWK packets in your mail directory. See the configuration section for details.

clean
    The clean command will allow you to do maintenance on your message bases. You will be able to delete, truncate, or purge messages marked as killed. Use the `k' command while reading messages to mark a message as killed. Set the default truncation length for maintenance in your atprc. This number is changeable from inside the clean command should you need that flexibility.

rot The rot command will filter the current message through a Usenet standard rot-13 text filter. Invoking the rot command twice will restore the original message. Rot-13 encoding is sometimes used to shield offensive material from being accidentally read. It is not a secure cypher, and it is not intended to be.

!   [ shell_command ]
    Without arguments, this command will shell you out of the program into the system. Type `exit' to return. You may also follow this command with any valid command line which your operating system's command processor will recognize.

cls Will clear the screen display.

pcb Will toggle support for PCBoard long subject lines.

time
    Will display the current date and time.

date
    Will display the current date and time

fido
    The `fido' command will toggle the current tagline style. See section on taglines for more information.

last
    The `last' command will display the end message in a conference.

news
    The `news' command will display the current news file from the BBS.

welcome
    The `welcome' command will display the current board's welcome message.

files
    The `files' command will display the new files list from the current BBS.

blt The `blt' command will display a list of available bulletins from the current BBS. To display a particular bulletin just enter its file name.

hello
    The `hello' command will display the BBS Welcome message.

goodbye
    The `goodbye' command will display the BBS goodbye message.

door
    The `door' command will display the BBS door id and version (if it was included in the mail packet).

m   The `m' command will toggle the ansi mode on and off.

g   The `g' command will quit ATP.

q   The `q' command will quit ATP. It is the same as the `g' command.

s filename
    The `s' command will save the current message to a specified text file. If the file exists, the message will be appended to the end.

tag The `tag' command is used to set tagline options. See the section below on taglines for details.

TAGLINES
ATP supports either FIDO or regular style taglines. In addition ATP uses three types of taglines: persistent, run-time, list. You have 1 persistent and 1 run-time tagline. Your list taglines must be kept in the file taglines.atp which should be in the same directory as your atprc. The purpose of the persistent tagline is that it is always there for you to recall and use. You may choose to use other taglines but the persistent tagline will still be there when you want it. The run-time tagline is one you yourself enter at the command line. Should a bit of whimsy strike you, you can use it right away without editing the tagline file. At any one time there is only one active tagline which may be viewed by typing the command `tag ?'. Before entering your message choose your active tagline. You may pick from the list, use your persistent tagline, or type a run-time defined tagline at the prompt. You also have the choice of toggling FIDO or regular style tagline by typing the command `fido' at the command line. Here is a summary:

persistent
    Defined after the `' statement in the configuration file. This tagline is stored in a stack with the run-time tagline. Typing `tag swap' will copy the stack into the current active tagline. Typing `tag swap' twice in a row will roll the stack. The persistent tagline is good for a tagline which you regularly use such as one containing place of message origin.

run-time
    Defined at the ATP command line. If you feel like adding an impromptu tagline just type `tag' followed by your text.

    Example:

    This above example command will change the active tagline to:

list
    A list type tagline is just a tagline stored in the plain text file taglines.atp. If you have selected the auto tagline feature, ATP will choose a tagline at random from your taglines.atp file every time you enter a reply. You may also type `tag random' at the command prompt to re-select at any time. Taglines may also be selected directly. Type `tag list' to view your list of taglines, and then type `tag n' to choose a numbered tagline directly (where `n' would be the number of the tagline in the list as it is viewed). If you wish to add or delete taglines from taglines.atp you should use your favorite text editor.

TAGLINE COMMAND
The `tag' command is the basic command for setting and changing taglines. ATP echoes any changes in tagline to the screen so you may be certain as to what the current tagline is. If in doubt, just type `tag ?'. Here are the possible variations on `tag':

tag help
    The `tag help' command will display the special help menu for taglines.

tag swap
    The `tag swap' command will swap move either the persistent or the run-time defined tagline into the current tagline buffer. Any list defined tagline will be removed from the buffer. Alternately typing `tag swap' will toggle the current tagline between persistent and run-time defined.

tag steal
    The `tag steal' command will append the tagline in the current message to your taglines.atp file. This feature only works on messages which follow the PCBoard BBS style of taglines. For Fido taglines use the `tag add' command.

tag add
    The `tag add' command allows you to type in a tagline which will then be appended to your taglines.atp file. This feature is useful for Fido style taglines which are not so easily captured by the `tag steal' command.

tag list
    The `tag list' command will display a list of all available taglines.

tag n
    The `tag n' command will set the current tagline to the tagline in the list designated by the number `n'.

tag ?
    The `tag ?' command will display the current tagline.

tag auto
    The `tag auto' command will toggle automatic tagline selection ON or OFF.

tag random
    The `tag random' will choose a random tagline for you. It may be used with either automatic selection disabled or enabled. The auto tagline mode itself uses this command after every reply to regenerate a new tagline. Try it out a few times to familiarize yourself with it.

tag off
    The `tag off' command will disable taglines.

tag on
    The `tag on' command will re-enable taglines.

fido
    This is a command which toggles the tagline style between FIDO style taglines and regular style. This is provided because FIDOnet has specific rules about tear lines and high ascii characters. Here is an example of a regular tagline followed by an example of a FIDO style tagline:

SPECIAL KEYS
With release 1.4 some support for special keys have been added. This is still being developed and may change. If you would like to try the special keys here are the mappings. Note: support now is only for VT102, Linux, OS/2, and MSDOS consoles.

 key          command
-------------------------------------------------------------
 <f1>         help
 <f2>         tagline help
 <f3>         view taglines
 <f4>         list available QWK packets
 <f5>         show terms of license
 <f10>        `next' for text search.
 <home>       goto first message in conference [keypad upper left]
 <end>        goto last message in conference [keypad lower left]
 <page up>    view messages in reverse order [keypad upper right]
 <page dn>    view messages in forward order [keypad lower right]
 <keypad `5'> `N' either `next' or `no' (depends on context)
 <up arrow>   recall previous command in history
 <down arrow> recall next command in history

COMMAND LINE EDITOR
ATP uses the Rich Salz and Simmule Turner command-line editor. This provides a simple but powerful emacs-like command-line editing interface to its users. Previous commands may be recalled by scrolling through the command history with the arrow keys. A line may be edited before it is sent by typing either control characters or escape sequences. A control character, shown as a caret followed by a letter, is typed by holding down the ``control'' key while the letter is typed. For example, ``^A'' is a control-A. An escape sequence is entered by typing the ``escape'' key followed by one or more characters. The escape key is abbreviated as ``ESC.'' Note that unlike control keys, case matters in escape sequences; ``ESC F'' is not the same as ``ESC f''. Auto command completion is invoked by pressing the ``TAB'' key. If there is more than one possible completion, ``ESC ?'' will display the available alternatives.

An editing command may be typed anywhere on the line, not just at the beginning. In addition, a return may also be typed anywhere on the line, not just at the end.

Most editing commands may be given a repeat count, n, where n is a number. To enter a repeat count, type the escape key, the number, and then the command to execute. For example, ``ESC 4 ^f'' moves forward four characters. If a command may be given a repeat count then the text ``[n]'' is given at the end of its description.

Please see the man page editline(3) for more details. The following are a list of the basic control characters and commands:

    ^A	Move to the beginning of the line
    ^B	Move left (backwards) [n]
    ^D	Delete character [n]
    ^E	Move to end of line
    ^F	Move right (forwards) [n]
    ^G	Ring the bell
    ^H	Delete character before cursor (backspace key) [n]
    ^I	Complete filename (tab key); see below
    ^J	Done with line (return key)
    ^K	Kill to end of line (or column [n])
    ^L	Redisplay line
    ^M	Done with line (alternate return key)
    ^N	Get next line from history [n]
    ^P	Get previous line from history [n]
    ^R	Search backward (forward if [n]) through history for text
    	must start line if text begins with an uparrow
    ^T	Transpose characters
    ^V	Insert next character, even if it is an edit command
    ^W	Wipe to the mark
    ^X^X	Exchange current location and mark
    ^Y	Yank back last killed text
    ^]c	Move forward to next character ``c''
    ^?	Delete character before cursor (delete key) [n]
    ESC	start an escape sequence (escape key)
    TAB	auto command completion
    ESC ?	suggest alternative completions
    Note: use the up/down arrow keys to recall previous commands.

HISTORY

Version 1.50 January 1997 -- fourth release of ATP

    Full termcap support for non-ansi terminals. No limits on message size for any version. Replies can now be directed to any message area with `r' command. New `x' command for cross posting. Improved `r' and `c' commands for re-directing replies to different message areas. Use ^C to cancel `find' search. Add perl script `atpdiag' to help diagnose proper configuration. Rot-13 message shroud/unshroud added. GNU autoconf support provides configure script for building ATP on Unix systems. Tom Glaab contributes tagline steal/add (thanks!). Tagline `tag on/off' commands added. MSDOS 16 bit version can swap itself out when spawning sub-shell if linked with Ralph Brown's spawno libraries. MSDOS versions now DESQview aware. Stefan Reinauer contributes German language support. Code re-organized with greater modularity and strong type checking in mind. Source includes ansi2knr to allow building with non-ANSI C compiler. Can now be compiled with C++. Various bug fixes and improvements.

Version 1.42 September 4, 1993 -- third release of ATP

    This release sports improved `find' and `clean' commands. The `clean' command now allows selective purging of messages that have been marked killed with the `k' key. It also allows truncation of message bases to the last `n' messages. All in all a much nicer way to maintain message bases. Derric Scott (dtscott@access.digex.net) provided the patches for the improved `find' command which highlights found text in reverse video. ATP supports messages up to 180,000 bytes in size (more than 3000 lines). The ATP command line is now 8 bit clean and will accept the so called "high ascii" and foreign language characters.

    PCBoard long subject lines are now supported but this is still experimental. Users may toggle this feature with the `pcb' command from the command line. The `blt' command displays a list of available bulletins, then type the bulletin name that you wish to view. Alan Barclay provided patches for SCO which also added the `qscan' command for a quick scan of abbreviated message headers. Many bugs have been fixed and efforts to greater portability have continued. OS/2 is now supported. Jim Gomes provided Windows and MSC support. It has been reported that ATP runs under the AMIGA but no patches were submitted for inclusion in this release. Thanks to David Fox for his bug reports and ideas.

Version 1.41 Spring 1993 -- beta testing release of ATP

    Closed beta testing with interested individuals.

Version 1.4 November 1992 -- second release of ATP

    Now ATP includes a separate conference for replies. Replies may be killed with the `k' command or security toggled with the `p' command. The `find' command and `next' command were added for text search. The Rich Salz and Simmule Turner line editing library is now included. This gives powerful Emacs style command line editing and history recall. Please check the separate copyright notice regarding this library. Three character sets are now supported: ISO Latin1, 7bit, and MSDOS. On terminals which support VT102 line graphics, MSDOS line graphics are translated appropriately. In addition, for some terminals, special function keys are now supported.

    Limits on number of conferences per BBS is now set at 8192 with dynamic memory allocation for supporting data structures. Message size limit has been increased from 32K bytes to 150K bytes, roughly 3000 lines of typical message text. Limits on the number of taglines have been removed. Taglines are now stored in a separate tagline file "taglines.atp". Taglines may now be selected randomly (automatically or manually) as well as directly. Bug fixes and general code cleanup also were done. Code has been brought into stricter compliance with ANSI and POSIX standards. Sorry K&R. No matter what your system GNU GCC is recommended for compiling ATP.

    ATP has been compiled and tested on a number of systems for this release including Esix, Linux, SVR4, 386bsd, and MSDOS. For MSDOS it is recommended that DJ Delorie's port of GNU GCC be used. This is a very nice compiler and it will compile Unix source code very easily. It requires a 386 or better computer. ATP will also compile under the large model of Borland's Turbo C but the limits are smaller.

Version 1.3 July 1992 -- first release of ATP

    McWilliams. Character set translation MSDOS/Linux, Linux/MSDOS. Personal mail alarm. Personal mail conference. Correct reply headers, correct time and conference numbers. Command line processing. Improved command parsing. Rewrite fget() to handle pathological control.dat files. Taglines and tagline management. Ansi editing of entries. Replies queries: save, abort, edit. Message header scanning. Bug fixes. Improved message quoting. Correction of conference Autojoin(); Tested under Linux 0.96c and Esix R.4.0.

Version 1.2 April 1992 -- first Unix/Linux port of AzerTyuioP.

    Salazar. Unix-izing for Linux. Conversion of path names. Writing new string comparison functions. Reworking system.c and system.h modules for portability. First version to unarc packets and read them under Linux. Improved handling of control.dat parsing. Introduction of array to track real conference numbers versus conference ordinal numbers.

Version 1.1 November 1990 -- Cougnenc releases AzerTyuioP code.

    Cougnenc. Code to experimental QWK reader AzerTyuioP is released for MSDOS. Primarily useful as tool for studying QWK packets. Cougnenc had no documentation on the layout so this work was empirical in nature. Includes both French and English capabilities, set-able at compile time. Reader creates archives of received messages.

THANKS
Many thanks to Rene Cougnenc for his AzerTyuioP from which much of ATP is derived. Also thanks must be given to Mark Salazar who provided the first quasi-functional Unix version of AzerTyuioP which was able to un-archive packets and read mail. A big thanks to all who have provided patches particularly Derric Scott with enhancements to the `find' command. Alan Barclay provided fixes and added functionality with his SCO patches. Tom Glaab has provided nice enhancements to the tagline functionality such as the `steal' command. Stefan Reinauer provided German language support. Also thanks to Jim Gomes, Dane Beko, Patrick Lee, Ron Smith, and David Fox who have provided useful suggestions, contributions, and bug-reports.

COPYING AND NO WARRANTY
Copyright © 1992,1993,1997 Thomas McWilliams.
ATP is copyrighted free software provided WITHOUT warranty of any kind, NOT EVEN the implied warranty of merchantability or fitness for any particular purpose. Use at your own risk. ATP may be used in any way you wish so long as you comply with the provisions of the Free Software Foundation GNU General Public License; either version 2 of the License, or (at your option) any later version. Essentially this means that you *MUST* provide the source code for any works derived from ATP when you distribute binaries. You can not withhold the rights which you yourself have been granted. Please type `show terms' from ATP's command line for a display of warranty disclaimer and pointers to pertinent documents. This software should have come with a copy of the GNU General Public License. You may obtain a copy of this license by writing to:
	Free Software Foundation, Inc.,
	675 Mass Ave,
	Cambridge, MA 02139, USA.

BUG REPORTS AND PATCHES
Bug reports, suggestions, and code contributions are welcome. If you have ported ATP to another system, your are welcome to submit the patches so that they might be incorporated into the next release. Bug reports should include a way for me to reproduce the bug.

Fido netmail may be sent to me at node and I am sometimes reachable via the Internet at one of the following locations:

Snail mail may be sent to:
	Thomas McWilliams
	P.O. Box 7545
	Arlington, VA 22207
Source code for ATP can be found at:

FILES
/usr/local/bin/atp
$ATP/taglines.atp
$ATP/atprc

SEE ALSO
    atpdiag(1), editline(3), zip(1), unzip(1), rot13(1)