Document: PIDLIST.TXT (FSC-0046)
Date: 11-Sep-96
A list of used product idenfifiers
Joaquim Homrighausen, joho@defsol.se
Product identifiers
Product Version ID Author
----------------------------------------------------------------------------
!!MessageBase 1.6 !!MB Holger Lembke 2:240/500.20
Alert 2.1 Alert Richard Kail 2:310/25.2
ANet 921213 ANet Thomas Ekstroem 2:201/411
Announcer 1.0+ Announcer Peter Karlsson 2:206/221
ArcMail RISC OS 1.04 AM Philip Blundell 2:440/34.4
Artmail Mailer System 1.00 ART Klaus Landefeld 2:247/402
Auto Message Taker 1.00 AMT Patrik Torstensson n/a
AVALON 3.73+ AVALON Stephan Slabihoud 2:2446/110.6
BeroPoint 1.0+ BeroPoint Bernhard Rosenkraenzer 2:2452/307.46
Blender 1.01 Blender Serge Vikulov 2:5080/5
The Brake! Mailer 1.0+ The-Brake! John Gladkih 2:5051/16
CMBBS 3.26 CMBBS Christof Engel 2:2490/5110
CE-Point 3.26 CE-Point Christof Engel 2:2490/5110
CrossEd 1.00+ CROSSED Mathias Kowalkowski 2:2454/207.1
CrossPoint 2.10 XP Peter Mandrella 2:243/97.80
Dazzle Wizard 4.00 DazzleWiz Jan H. Andersen 2:238/51
EchoList Expert .99 ELX George Hannah 1:255/7
EchoSprint 1.02 ES Ben Elliston 3:620/262
Enhanced Mail MAnager .01 EMMA Johan Zwiekhorst 2:292/118
Enhanced Message EDitor .02 EMED Johan Zwiekhorst 2:292/118
Eternity BBS 1.00 Eternity Isaac Oates 1:107/445
EZMail .67 EZMail Torben Paving 2:234/41
FastEcho 1.21+ FastEcho Tobias Burchhardt 2:2448/400
FDREQ 1.12 FDREQ Manfred Schramm 2:2446/502
FDWorks 1.2 FDWorks Tilli Weissenberger 2:310/29.5
FileScan 1.5 FileScan Matthias Duesterhoeft 2:241/4513
FMail 1.02+ FMail Folkert Wijnstra 2:283/619
Freqit (MS-DOS) 1.0 FID Marvin Hart 1:106/462
Freqit (Windows) 1.0 FIW Marvin Hart 1:106/462
FrontDoor (Editor) 2.00+ FM Joaquim Homrighausen 2:270/17
FrontDoor (Mailer) 2.00+ FD Joaquim Homrighausen 2:270/17
FrontDoor APX 1.00+ FDAPX Joaquim Homrighausen 2:270/17
FrontDoor APX/w 1.00+ FDAPX/w Mats Wallin 2:270/19
FrontDoor Manager 1.00 FDMGR Thomas Raehalme 2:220/412
FrontDoor RP for RA 1.21+ FDRPR Mats Wallin 2:270/19
FrontEnd FX 1.00 FEFX Eric Theriault 1:132/220
FrontEndTime 1.00 FETime Eric Theriault 1:132/220
FX Editor 1.00 FXE Eric Theriault 1:132/220
F_POINT 1.1 F_POINT Florian Rupp 2:248/107.2
GEcho 1.00 GE Gerard van der Land 2:2802/110
GeeMail 2.00 GeeMail Lech Szychowski 2:480/4.7
HbToSca 1.00 HTS Jani Laatikainen 2:220/150
HyperBBS 2.00 HyperBBS Jani Laatikainen 2:220/150
JetMail 1.00 JetMail Daniel Roesen 2:243/93.8
JosEcho .53g JosEcho Jose Rodriguez 2:340/15.20
Juggernaut 1.00+ JDR_BBS John Rohner n/a
LA 1.51+ LA Erik Groten Steenwelle 2:283/412.1
LapMail 1.00+ LapMail Svetoslav Alexandrov 2:350/66
LazyBBS .5 LazyBBS Franck Arnaud 2:320/100
LED 1.25+ LED Stephan Slabihoud 2:2446/110.6
M-POINT 1.74 M-POINT Manfred Schramm 2:2446/502
Mail FX 1.00 MFX Eric Theriault 1:132/220
McMail 1.0 McMail Gordian Schuermann 2:2426/2001
MsgTrack 3.20 MT Andrew Farmer 1:243/1
NewsAgent .01 NAgent Steven Bagley 2:2501/101.12
NewsFlash 1.01 NwF Chris Lueders 2:2402/330
NewsPost 1.6 NewsPost Andreas Otto 2:2452/307
NodeList Expert .90 NLX George Hannah 1:255/7
Notify 2.1 Notify Frank Schuhardt 2:247/160
Now Playing 1.01+ NP Sam Wormleighton 2:250/109.25
O/T-Track 2.60 O/T Peter Hampf 2:241/1090
OFFFax 3.03 OFFFax Frank Schuhardt 2:247/160
PktMake 1.5 PktMake Dmitry Morozovsky 2:5020/268
PmFido .50+ PmFido Jiri Kuchta 2:421/13.7
Pobble .15 Pobble Josh Parsons 3:771/340
Post 'em All! 1.10+ PEA Basil Vorontsov 2:5020/487
QBBed 2.64 qbbed Werner Berghofer 2:310/90.100
RASS 1.00 RASS Yossi Gottlieb 2:403/139.75
RemoteAccess 1.10 RA Andrew Milner 2:270/18
SendFile 1.00 SendFile Mike Shoyher 2:5020/17.3
SING Application 2.16 SING App Eric Theriault 1:132/220
SpeedMail 1.01 SpeedMail Tilli Weissenberger 2:310/29.5
SuperFX BBS 1.00 SFXBBS Eric Theriault 1:132/220
Synchronet 1.00 SYNC Rob Swindell 1:103/705
Synthesis BBS (BBS) 1.00 SynBBS Eric Theriault 1:132/220
Synthesis BBS (Mailer) 1.00 SynMail Eric Theriault 1:132/220
TB-Edit 1.10 TB-Edit Arjen Lentz 2:283/512
TB-Mailer 1.97 TB-Mailer Arjen Lentz 2:283/512
TB-Point .10 TB-Point Arjen Lentz 2:283/512
TechBBS 1.00 TECHBBS Marcel Tegelaar 2:281/409
TechMail 1.00 TECHMAIL Raymond van der Holst 2:281/409.2
TeleMail 1.10 TeleMail Juergen Weigelt 2:2453/900 (eMail address)
Terminate/TerMail 1.51+ TerMail Bo Bendtsen 2:254/261
TosScan 1.10 TosScan Joaquim Homrighausen 2:270/17
TPCS .89b TPCS Krister Hansson-Renaud 2:201/201.7
Mikael Kjellstrom 2:201/201.10
TrapToss 1.20 TrapToss Rene Hexel 2:310/6
UU2 FIDO/Internet gate 1.92 UU2 Dmitry Zavalishin 2:5020/32
XCOM 1.00 XCOM Uwe Kornnagel 2:2464/333
XRobot 3.00 XRobot Joaquim Homrighausen 2:270/17
Xrs Alternative Packer 1.04 XAP Jeroen Smulders 2:512/1.8
Zack! BBS 1.00+ Zack! Magnus Titho 2:2449/730.8
ZeroToss 1.00 ZeroToss Jeff Masud 1:103/115
ZNotify .65 ZNotify Boris Huertgen n/a
-----------------------------------------------------------------------------
Product identifier registration
Simply fill in the required information and send this form to the author of
this document via private netmail.
Product: _________________________________________
Version: __________
PID info: _________________________________________
Author: _________________________________________
Address: ___________________________ (eMail address)
--- end of file "pidlist.txt" ---
Tag Archives: FTSC
PIDLIST (FSC-0046)
A Product Idenfifier for FidoNet Message Handlers (FSC-0046)
Document: FSC-0046
Version: 005
Date: 30-Aug-94
A Product Idenfifier for FidoNet Message Handlers
Joaquim Homrighausen, joho@defsol.se
August 30, 1994
Copyright 1994 Joaquim Homrighausen; All rights reserved.
Status of this document:
This FSC suggests a proposed protocol for the FidoNet(r) community,
and requests discussion and suggestions for improvements.
Distribution of this document is unlimited.
Fido and FidoNet are registered marks of Tom Jennings and Fido
Software.
Purpose
This document should serve as a guide for the product identfier, PID
hereafter, format for FidoNet message handlers. The purpose behind PIDs
is related to my attempt to remove the requirement of Origin lines in
conference mail messages.
While I fully understand that this won't happen in all conferences, I
would like to provide the facility to those who can use it (i.e. for
conferences where all the participants are using software that supports
messages without origin lines).
Another use for PIDs is to minimize the excessive amount of information
some programs put on the tear lines which increases overall
transportation cost and time of conference mail.
PID
A PID replaces the program identifier often seen on the tear line of
conference mail messages and is hidden behind a ^A (ASCII SOH, 01h).
This also allows for better tracking of software causing problems in
conferences.
: Only one PID per message is allowed and should only be added by the
: program that creates the message. I.e. programs passing the message on
: to someone else may not add additional PIDs. If a PID is added, no
: program information may be present after the tear line.
A PID also offers the ability to add serial numbers to identify a
specific copy of a program as being the source of a message with little
or no effort.
Format
^APID:
[ ]
Sample
^APID: FM 2.11.b
Would identify FrontDoor's editor, beta version 2.11 and replace:
--- FM 2.11 (beta)
Fields
pID The ID of the product responsible for creating the message.
This should be kept as short as possible. The maximum
length for this field is 10 characters.
version The version of the product including any alpha, beta, or
gamma status. Only the relevant part of the version should
be included. I.e. 1.00 should be expressed as 1, 1.10 as
1.1 and 1.01 as 1.01. Alpha, beta, or gamma status should
be expressed by appending a / or . followed by a, b, or g
and optionally a revision indicator, such as a1, b2, etc.
The maximum length for this field is 10 characters.
serial# The serial number of the product, omitted if irrelevant
or zero. The maximum length for this field is ten (10)
characters.
TID
TIDs or "Tosser IDs" started to appear shortly after the first
revision of this document was released. They are added by Conference
Mail ("EchoMail") processors when a message is exported from the
local message base and injected into the network distribution scope
for a conference.
When a Conference Mail processor adds a TID to a message, it may not
add a PID. An existing TID should, however, be replaced. TIDs follow
the same format used for PIDs, as explained above.
List of products
The accompanying file, PIDLIST.TXT, is a list of products known to
support the PID proposal. Software authors are encouraged to inform
the author of this document of changes and additions to this list.
--- end of file "fsc-0046.005" ---
EMSI goes ISO, sort of
This document may be distributed freely provided no charge of any kind occurs and all accompanying files (XLAT.CPP, ISOXLAT.PAS, ISOTEST.PAS, and ISOEMSI.DOC) is left unmodified.
This is to document what has been suggested as an upcoming addendum to the EMSI specifications. The next version of FrontDoor (higher than 2.10) and, I believe TrapDoor, will (or does) use this scheme when creating the EMSI_DAT packet.
The reason for this is to allow high-bit ASCII (or “international characters”) and national codepages to be used transparently. The new encoding scheme does not break anything in existing implementations unless high-bit ASCII is used, in which case it may affect (cosmetic or otherwise) the operation of a mailer that doesn’t support the new scheme.
Basics
All data that is placed in the EMSI_DAT packet is translated to ISO 8859-1 and then processed as usual. Any escaping as per the EMSI specification, is done after the translation to ISO 8859-1. On the receiving side, the data is first unescaped and then translated from ISO 8859-1 to the local codepage. Data that is strictly seven bit ASCII is not translated by the code accompanying this document.
There is no flag or other indicator to show that the EMSI_DAT packet has been encoded using ISO 8859-1. The IEMSI portion of the EMSI specification is not affected at this time.
Notes
One rather serious drawback is that you will see password failures between mailers that use high-bit ASCII in the password between two systems where one is using a mailer that uses the ISO 8859-1 scheme and the other isn’t. The recommended cure is to either remove the high-bit ASCII, or to have the mailer replaced/updated.
Code
The accompanying code, XLAT.CPP (by Alexander Holy, 2:310/90) and ISOXLAT.PAS and ISOTEST.PAS may be used free of charge, no warranties or guarantees, etc. If you find reason to make changes, we would appreciate hearing about it.
That’s about it..
Joaquim Homrighausen
joho@defsol.se
// end of file “isoemsi.doc”
Specifications for the ^aFLAGS field (FSC-0053)
Document: FSC-0053
Version: 002
Date: 08-Dec-92
Specifications for the ^aFLAGS field
Joaquim Homrighausen, joho@defsol.se
December 8, 1992
Status of this document:
This FSC suggests a proposed protocol for the FidoNet(r) community,
and requests discussion and suggestions for improvements.
Distribution of this document is unlimited.
Fido and FidoNet are registered marks of Tom Jennings and Fido
Software.
Purpose
To explain and document the existing usage of the ^aFLAGS field used
by many software packages, including FrontDoor, TosScan, and
D'Bridge. And to inform software authors of its proper usage.
Prologue
One of the problems with the FTS-1 (stored) message format is its
limitations in regards to message attributes. Several bits are used
(reserved) by SEAdog, another by several packers and editors - even
though most mailer authors don't support them, they remain. One
reason would be backward compatibility with older software.
Unfortunately, this presents a problem for software authors that
would like to pass extended message attributes for use and handling
by other software.
Some software packages have been using an alternate method called
"FLAGS" which is 7-bit ASCII placed behind FLAGS somewhere near
the beginning of a message. The various flags will now be described.
Flags
The FLAGS string should be placed somewhere near the beginning of
the message text, and is preceeded by a (^a) character. There
is no need to support all or any of the below mentioned flags.
If flags are stripped when a message passes through a system, all
relevant and correct FTS-1 status bits should be updated to indicate
the original contents of the FLAGS field.
Flag Brief Long description
--------------------------------------------------------------------
PVT Private Indicates that the message may only be read
by its addressee and author.
HLD Hold Message should be held for pickup by its
destination system.
CRA Crash High-priority mail.
K/S Kill/Sent Remove message after it has been success-
fully sent.
SNT Sent Message has been successfully sent (used
for message without Kill/Sent status).
RCV Received Message has been read by its addressee.
A/S Archive/Sent Place message in "sent mail" archival
system after it has been successfully sent.
DIR Direct Message must be sent directly to its
destination and may not be routed.
ZON Zonegate Send message through zonegate (if
possible).
HUB Hub/Host-route Host- or Hub-route message (as
appropriate).
FIL File attach Message has one or more files attached to
it.
FRQ File request Message has one or more file requests in
subject field.
Flag Brief Long description
--------------------------------------------------------------------
IMM Immediate NOW!-priority mail. Send at first
opportunity, override any transmission
restrictions enforced by events, costs, or
qualification.
XMA Xmail Message has alternate form of compressed
mail attached.
KFS Kill file Remove attached file(s) after they have
been successfully sent. Only valid for file
attach message.
TFS Truncate file Truncate attached file(s) to zero length
after they have been successfully sent.
Only valid for file attach message.
Primarily used by Conference Mail
processors.
LOK Lock Prevent message from being processed.
This includes sending, deleting,
purging, and editing.
RRQ Receipt REQ When the mailer/packer at the message's
final destination unpacks the message, it's
asked to generate a receipt to the author
of the message that indicates that the
message arrived at its final destination.
CFM Confirm REQ When message is read by its addressee, a
Confirmation Receipt should be generated to
the author of the message.
HIR HiRes FAX: Hi-Resolution image.
COV CoverLetter FAX: Cover sheet.
SIG Signature FAX: Signature.
LET LetterHead FAX: LetterHead.
| FAX Fax image The filename specified in the message's
| subject field contains a fax document that
| should be viewed using software capable of
| doing so.
Flag Brief Long description
--------------------------------------------------------------------
| FPU Force pickup Treated as a message with an IMM flag. This
| instructs the mailer to keep calling the
| destination system, if the connection is
| aborted for some reason, until a valid "End
| of files" signal is received (i.e. no more
| files remain to pick up).
Notes
Xmail is related to the ARCmail 0.60 standard as adopted by the FTSC.
The exception is that any type of compression method may be used and
the naming convention isn't necessarily limited to that of the
ARCmail 0.60 standard.
Epilogue
Feedback would be appreciated and can be sent to me at the addresses
specified on the title page. Please send feedback via netmail.
--- end of file "fsc-0053.002" ---
EMSI/IEMSI Protocol Definitions (FSC-0056)
Document: FSC-0056
Version: 001
Date: 03-May-1991
EMSI/IEMSI Protocol Definitions
Joaquim H. Homrighausen
May 3, 1991
Status of this document:
This FSC suggests a proposed protocol for the FidoNet(r) community,
and requests discussion and suggestions for improvements.
Distribution of this document is subject to the restrictions
specified on the next page.
Fido and FidoNet are registered marks of Tom Jennings and Fido
Software.
(Also known as EMSC-001; Electronic Mail Standards Document #001)
---------------------------------------------------------------------
Copyright 1989-1991 Joaquim H. Homrighausen. All rights reserved.
---------------------------------------------------------------------
Notice
=====================================================================
This document obsoletes EMSI_003 and any previous document describing
the EMSI, UZAP, and/or IEMSI handshake protocol. I apologize for the
lack of proper state charts. I am currently under a fairly heavy
work-load and thought it would be better to release something half-
decent than not to release anything at all.
Restrictions
=====================================================================
EMSI/IEMSI may be used by any developer as long as these
specifications are followed exactly. The IEMSI and EMSI specifications
may be implemented independently of each other.
EMSI/IEMSI may be used free-of-charge by any developer for any
purpose, commercially or otherwise. In creating EMSI/IEMSI, we are
taking the first step towards developing a clear protocol definition
for state-of-the-art E-Mail systems to follow.
This document and its NOTES file (EMSI.NOT) may be freely copied and
distributed, but must NEVER be distributed in a modified form. If you
have an enhancement request, please contact the author of this
document; do not change it yourself.
Permission is hereby granted to the FTSC (Fidonet Technical Standards
Committee) and other technical organisations to republish this
document in its entirety. Librarians may change the title page and
page headers to match their library format as long as all copyrights
and body text remain unaltered. The original document name and source
(EMSC) must be mentioned in any republished versions of this
document.
No organization, company, person, or other being may impose any fees
for any reason for providing this document. This document may not be
sold or otherwise transferred for personal or company gain under any
circumstances.
Layout
=====================================================================
This document consists of four major parts; A short introduction and
explanation of the EMSI/IEMSI handshake protocol, the EMSI
definitions, the IEMSI definitions, and finally various notes and
credits.
PART I
Introduction
=====================================================================
The EMSI/IEMSI handshake protocol allows for maximum flexibility in
E-Mail session start-up and control. The YooHoo (FTS-6) standard,
designed by Wynn Wagner III, was a good idea, but did not allow
sufficient room for growth and cannot be used in 7-bit environments.
EMSI/IEMSI should provide for virtually unlimited growth and
expansion of its own scope. By providing variable-length packets,
EMSI/IEMSI is capable of being as simple or as complex as necessary
and entirely backwards compatible when new features and/or protocols
are added.
All EMSI/IEMSI packets and sequences consists of 7-bit printable
ASCII characters. This format allows us to establish a universal
handshake between "PCs" and "mainframes" alike. The more complicated
the computer system, the more restrictions affect its I/O; there are
many I/O channels that cannot transmit control characters such as XON
and XOFF; for this, we have created a universal handshake protocol
that uses all printable characters.
EMSI/IEMSI does allow control and 8-bit ASCII characters to be
transmitted. This is, however, accomplished by escaping the data
and converting it to 7-bit printable ASCII characters.
Data layer
=====================================================================
EMSI/IEMSI is a protocol based on multi-character sequences rather
than single character flow control. There are several advantages of
using several characters rather than just one, but there is also a
drawback. On very poor-quality telephone lines, EMSI will most likely
require several retransmissions of packets since line noise usually
come in bursts. That aside, there is little advantage in using a
protocol based on single characters.
All EMSI/IEMSI sequences are terminated by a single unless
otherwise specified. This is necessary to force some data collection
equipment to flush their buffers. Appending to EMSI/IEMSI
sequences in a FidoNet environment is a delicate matter and it is
important that you follow the notes regarding this.
Note regarding file requests
---------------------------------------------------------------------
The file request concept mentioned in the EMSI document refers to
WaZOO style file requests as specified in FTS-6. No other file
request mechanism is supported in the EMSI specifications.
Separator usage
---------------------------------------------------------------------
To designate the fields within the EMSI/IEMSI packets and retain
complete transparency, both start and stop characters are used.
The ASCII1 type is used for all fields within the packet. This uses
the brace characters to delimit the fields. The '{' (ASCII 123)
character is the start byte and '}' (ASCII 125) is the stop byte.
If a stop byte is used as literal data within a field, it must be
transmitted twice. The end of a field is designated by a stop byte
that is not followed by another identical stop byte.
The ASCII2 fields are delimited in exactly the same way, but use the
square brackets as delimiters. The '[' (ASCII 91) is the start byte
and ']' (ASCII 93) is the stop byte. ASCII2 is used to delimit data
within the ASCII1 extra_field information.
7-bit data restriction
---------------------------------------------------------------------
It is the developer's responsibility to ensure that the software
generates EMSI/IEMSI packets and sequences containing only 7-bit
(00H through 7eH) printable ASCII characters.
It is recommended that all EMSI/IEMSI implementations strip the high-
order bit of all received characters prior to processing the packet/
sequence and prior to calculating CRC values.
CRC values
---------------------------------------------------------------------
The polynomial used to calculate a 16-bit CRC is the same polynomial
used in the Xmodem file transfer protocol. The polynomial used to
calculate a 32-bit CRC is the same polynomial used in the Zmodem file
transfer protocol.
Binary values
---------------------------------------------------------------------
Since the EMSI environment specifies only 7-bit printable ASCII
characters to be used, binary values, such as CRC and length
descriptors are expressed as a four character hexadecimal string. The
only exception to this is a 32-bit CRC value which is expressed as an
eight character hexadecimal string.
The application must treat them case insensitive, eg. ffaa should be
treated identical to FFAA.
Handling 8-bit data
---------------------------------------------------------------------
Although EMSI only uses 7-bit printable ASCII characters, there is an
escape mechanism that allows systems to transmit control and 8-bit
ASCII characters without the requirement of an 8-bit data link. The
escape character is a backslash character ('\') and is followed by two
characters in hexadecimal notation. Eg. "\80" is the ASCII character
128. To insert an actual backslash character, two backslashes are used
("\\"), or a backslash followed by the hexadecimal code for a
backslash, eg. "\5c".
The hexadecimal code following a backslash MUST always be two
characters, ie. to insert ASCII 15 (hexadecimail 'f'), the result
would be "0f". All hexadecimal sequences must be treated case
insensitively.
PART II - Electronic Mail Standard Idenfitication
Connecting two EMSI capable systems
=====================================================================
This assumes that the two systems are connected and that no data
has been transmitted by the Caller.
It should be mentioned that sending/monitoring for the "YooHoo",
"TSYNC", and other protocol start characters is optional and not
required for a strict EMSI implementation.
STEP 1, EMSI INIT
Calling system Answering system
+-+-------------------------------+----------------------------------+
:1: Send until ANY character : Send EMSI_REQ and possible :
: : is received. : banner, etc. :
+-+-------------------------------+----------------------------------+
:2: Receive banner, etc. Monitor : Monitor line for the EMSI_INQ :
: : line for the EMSI_REQ : sequence and if received, :
: : sequence and if received, : attempt to handshake immediately.:
: : transmit EMSI_INQ and attempt : :
: : to handshake immediately. : :
+-+-------------------------------+----------------------------------+
:3: No EMSI_REQ sequence received,: Monitor line for EMSI_INQ and :
: : send EMSI_INQ twice followed : possible other protocol start :
: : by possible other protocol : characters and if received, :
: : start characters. : attempt to handshake immediately.:
: : : :
: : Transmit : Go to step 3. :
+-+-------------------------------+----------------------------------+
:4: If EMSI_REQ sequence received,:
: : send EMSI_INQ and attempt to :
: : handshake immediately, :
: : otherwise repeat step 3. :
+-+-------------------------------+
In steps 1 and 2, both the Calling and Answering system terminate all
sequences with . In step 3, the Calling system does not terminate
sequences with as it is explicitly transmitted after possible
protocol start characters. In step 4, the Calling system once again
terminate all sequences with a .
STEP 2A, RECEIVE EMSI HANDSHAKE
At this point, all sequences are terminated with a .
+-+------------------------------------------------------------------+
:1: Tries=0, T1=20 seconds, T2=60 seconds :
+-+------------------------------------------------------------------+
:2: Increment Tries :
: : :
: : Tries>6? Terminate, and report failure. :
: +------------------------------------------------------------------+
: : Are we answering system? Transmit EMSI_REQ, go to step 3. :
: +------------------------------------------------------------------+
: : Tries>1? Transmit EMSI_NAK, go to step 3. :
: +------------------------------------------------------------------+
: : Go to step 4. :
+-+------------------------------------------------------------------+
:3: T1=20 seconds :
+-+------------------------------------------------------------------+
:4: Wait for EMSI sequence until EMSI_HBT or EMSI_DAT or any of the :
: : timers have expired. :
: : :
: : If T2 has expired, terminate call and report failure. :
: +------------------------------------------------------------------+
: : If T1 has expired, go to step 2. :
: +------------------------------------------------------------------+
: : If EMSI_HBT received, go to step 3. :
: +------------------------------------------------------------------+
: : If EMSI_DAT received, go to step 5. :
: +------------------------------------------------------------------+
: : Go to step 4. :
+-+------------------------------------------------------------------+
:5: Receive EMSI_DAT packet :
: +------------------------------------------------------------------+
: : Packet received OK? Transmit EMSI_ACK twice, and :
: : go to step 6. :
: +------------------------------------------------------------------+
: : Go to step 2. :
+-+------------------------------------------------------------------+
:6: Received EMSI_DAT packet OK, exit. :
+-+------------------------------------------------------------------+
All processing of the information in the EMSI_DAT packet must be done
after transmitting EMSI_ACK twice to the remote system. It is
recommended that an EMSI_HBT sequence is issued once every seven
seconds while such processing is taking place to avoid unnecessary
handshake collissions. Emitting EMSI_HBT should only be done when
it is obvious that the remote system is waiting for the second phase
of the EMSI handshake to take place.
STEP 2B, TRANSMIT EMSI HANDSHAKE
At this point, all sequences are terminated with a .
+-+------------------------------------------------------------------+
:1: Tries=0, T1=60 seconds :
+-+------------------------------------------------------------------+
:2: Transmit EMSI_DAT packet and increment Tries :
: : :
: +------------------------------------------------------------------+
: : Tries>6? Terminate, and report failure. :
: +------------------------------------------------------------------+
: : Go to step 3. :
+-+------------------------------------------------------------------+
:3: T2=20 seconds :
+-+------------------------------------------------------------------+
:4: Wait for EMSI sequence until T1 has expired :
: : :
: : If T1 has expired, terminate call and report failure. :
: +------------------------------------------------------------------+
: : If T2 has expired, go to step 2. :
: +------------------------------------------------------------------+
: : If EMSI_REQ received, go to step 4. :
: +------------------------------------------------------------------+
: : If EMSI_ACK received, go to step 5. :
: +------------------------------------------------------------------+
: : If any other sequence received, go to step 2. : :
+-+------------------------------------------------------------------+
:5: Received EMSI_ACK, exit. :
+-+------------------------------------------------------------------+
EMSI packet and sequence definitions
=====================================================================
=====================================================================
EMSI Inquiry **EMSI_INQ
---------------------------------------------------------------------
EMSI Inquiry is transmitted by the calling system to identify it as
EMSI capable. If an EMSI_REQ sequence is received in response, it is
safe to assume the answering system to be EMSI capable.
=====================================================================
EMSI Request **EMSI_REQ
---------------------------------------------------------------------
EMSI Request is transmitted by the answering system in response to an
EMSI Inquiry sequence. It should also be transmitted prior to or
immediately following the answering system has identified itself by
transmitting its program name and/or banner. If the calling system
receives an EMSI Request sequence, it can safely assume that the
answering system is EMSI capable.
=====================================================================
EMSI Client **EMSI_CLI
---------------------------------------------------------------------
EMSI Client is used by terminal emulation software to force a mailer
front-end to bypass any unnecessary mail session negotiation and
treat the call as an incoming human caller. The EMSI_CLI sequence may
not be issued by any software attempting to establish a mail session
between two systems and must only be acted upon by an answering
system.
=====================================================================
EMSI Heartbeat **EMSI_HBT
---------------------------------------------------------------------
EMSI Heartbeat is used to prevent unnecessary timeouts from occurring
while attempting to handshake. It is most commonly used when the
answering system turns around to transmit its EMSI_DAT packet. It is
quite normal that any of the timers of the calling system (which at
this stage is waiting for an EMSI_DAT packet) expires while the
answering system is processing the recently received EMSI_DAT packet.
=====================================================================
EMSI Data **EMSI_DAT
---------------------------------------------------------------------
EMSI Data is transmitted by both the calling and answering system at
the appropriate time to exchange system information. Following the
header is a four byte number representing the length of
excluding the CRC and terminating .
The EMSI_DAT packet is a variable length packet. Since this is a
synchronous protocol, the inbound data buffer should be purged
between transmission of the and fields to prevent
accidental EMSI_NAK sequences, etc.
=====================================================================
EMSI ACK **EMSI_ACK
---------------------------------------------------------------------
EMSI ACK is transmitted by either system as a positive
acknowledgement of the valid receipt of a EMSI_DAT packet. This should
only be used as a response to EMSI_DAT and not any other packet.
Redundant EMSI_ACK sequences should be ignored.
=====================================================================
EMSI NAK **EMSI_NAK
---------------------------------------------------------------------
EMSI NAK is transmitted by either system as a negative
acknowledgement of the valid receipt of a EMSI_DAT packet. This
should only be used as a response to EMSI_DAT and not any other
packet. Redundant EMSI_NAK packets should be ignored.
The EMSI_DAT packet
=====================================================================
The EMSI_DAT packet is the core of an EMSI negotiated session. It
contains information vital to the mail session. The following pseudo
structure shows the layout of the EMSI_DAT packet.
EMSI_DAT
fingerprint, "EMSI"
system_address_list,
password,
link_codes,
compatibility_codes,
mailer_product_code,
mailer_name,
mailer_version,
mailer_serial_number: ASCII1;
extra_field_1,
..
..
extra_field_n: EMSI_addon; (optional fields)
end;
The EMSI_addon structure is defined as follows:
EMSI_addon
product_ID,
specific_data: ASCII1;
end;
Following is an example of the actual data transmitted as an EMSI_DAT
packet:
{EMSI}{2:270/17}{}{8N1,PUA}{ZAP,ZMO,ARC,XMA}{44}{AirMail}{0.10}
{Beta-2}{IDENT}{[Advanced Engineering S.A.R.L.][Luxembourg]
[Joaquim Homrighausen][-Unpublished-][9600][MO,XA,HST,V32B,V42B]}
EMSI_DAT field definitions
---------------------------------------------------------------------
=====================================================================
Fingerprint EMSI
---------------------------------------------------------------------
The constant "EMSI". There is no need for a revision level since this
basic format cannot change and remain backward compatible.
=====================================================================
System address list
---------------------------------------------------------------------
The system address list is a list of system-specific identifiers for
the E-Mail system separated by spaces.
For FidoNet-technology based networks, it is required that
Zone:Net/Node be presented, and .Point be omitted if zero. Zone and
Net must not be zero.
In other networks, an address such as "jhom@csource.oz.au" should be
considered valid.
=====================================================================
Password
---------------------------------------------------------------------
For systems using a session level password, it would be passed in
this field. Note that the same password is used for all presented
addresses and that it must be treated case insensitive.
=====================================================================
Link codes
---------------------------------------------------------------------
Link codes is a string of flags that specify desired connect
conditions. These codes are separated by commas. New codes may be
added with prior approval from the author of this document.
Calling system/answering system options:
8N1,
7E1,
7O2,
etc. Communication parameters.
Calling system options:
PUA Pickup mail for all presented addresses.
PUP Pickup mail for primary address only.
NPU No mail pickup desired.
Answering system options:
HAT Hold ALL traffic.
HXT Hold compressed mail traffic.
HRQ Hold file requests (not processed at this time).
=====================================================================
Compatibility codes
---------------------------------------------------------------------
Compatibility codes is a string of flags that specifies the
capabilities and enabled features of the mailer. These codes are
separated by commas. New codes may be added with prior approval from
the author of this document.
The calling system must list supported protocols first and descending
order of preference (the most desirable protocol should be listed
first). The answering system should only present one protocol and it
should be the first item in the compatibility_codes field.
Protocols
-----------------------------------------------------------------
DZA* DirectZAP (Zmodem variant).
ZAP ZedZap (Zmodem variant).
ZMO** Zmodem w/1,024 byte data packets.
JAN Janus.
KER Kermit.
Other codes
-----------------------------------------------------------------
NCP No compatible protocols (failure).
NRQ No file requests accepted by this system.
ARC ARCmail 0.60-capable, as defined by the FTSC.
XMA Supports other forms of compressed mail.
FNC Filename conversion. This indicates that any transmitted
files must follow the MS-DOS restrictions of an eight
character file name followed by a three character
extension; eg. FILENAME.EXT
(*) DirectZAP is a variant of ZedZap. The difference is that the
transmitter only escapes CAN (18H). It is not recommended to use the
DirectZAP protocol when two systems are connected via a packet
switching network, or via another layer sensitive to control
characters such as XON and XOFF.
(**) The minimum protocol requirement for an EMSI implementation is
to support plain Zmodem (16- or 32-bit CRC, 1,024 byte packets) which
is represented by the ZMO flag in EMSI.
=====================================================================
Mailer product code
---------------------------------------------------------------------
The hexadecimal representation of the EMSC product code assigned to
the mailer. Currently, the EMSC codes are the same as the FTSC
assigned codes.
=====================================================================
Mailer name
---------------------------------------------------------------------
Specifies the name of the E-Mail system sending the EMSI packet.
=====================================================================
Mailer version
---------------------------------------------------------------------
The version number of the mailer software, ie. "1.10", "2.00".
=====================================================================
Mailer serial number
---------------------------------------------------------------------
The serial number, distribution source, version information, etc.
This field is usually displayed like:
NameVersion/Serial_number
eg.
AirMail 0.10/Beta-2
=====================================================================
Extra fields
---------------------------------------------------------------------
The extra fields make the EMSI handshake protocol extremely flexible.
Any program or mailer may add fields to the end of the pre-defined
structure so that program-specific data may be passed without the
concern of interferring with other systems.
There may be any number of extra fields added to the end of this
structure. Each EXTRA_FIELD contains two ASCII1 strings:
PRODUCT_IDENTIFIER A unique "tag" that defines a specific
program (such as a mailer or a utility).
SPECIFIC_DATA ASCII text that is specific data to the
program defined in PRODUCT_IDENTIFIER. With
this structure, any program can add its own
data to the EMSI packet without affecting
other applications.
It is recommended that you contact the author of this document should
you have any EXTRA_FIELDS that you may think worthwhile for other
developers to implement and support.
Predefined extra fields
---------------------------------------------------------------------
The following extra fields have been defined to date.
PRODUCT_IDENTIFIER : IDENT
Purpose : General identification of system that
includes all information to generate a St.
Louis-format nodelist entry.
SPECIFIC_DATA : system_name,
city,
operator_name,
phone_number,
baud_rate,
flags: ASCII2;
SYSTEM_NAME The name of the system given by the user.
This would normally be a company name, BBS
name or other identifying text.
CITY The geographical location of the system.
OPERATOR_NAME The name of the person primarily responsible
for the system.
PHONE_NUMBER The telephone number of the system, or
"-Unpublished-" if the telephone number is
unpublished. This MUST be in the standard
format COUNTRY-CITY-NUMBER. Leading zeros
should be stripped from the city code,
ie. Stockholm (Sweden) has a city code of 08,
included in an EMSI packet, it would read
46-8-.
BAUD_RATE The maximum baud rate supported by the
system. This is NOT necessarily the same as
the highest DTE rate.
FLAGS The St. Louis (FTSC) nodelist flags
associated with the system.
PART III - Interactive Electronic Mail Standard Idenfitication
Connecting two IEMSI capable systems
=====================================================================
Two specific labels are used when discussing the IEMSI definitions.
The Client, which in this case is the Terminal software, and the
Server, which in this case is the interactive on-line software,
such as a BBS package or database system. It is assumed that the
Client and the Server have established a data link and that no
data has been transmitted by the Server.
STEP 1, IEMSI INIT
There is no specific sequence of events in the IEMSI definition. The
Client must monitor incoming data and if the EMSI_IRQ sequence is
detected, it attempts to negotiate an IEMSI session with the Server.
Under no circumstances is the Client allowed to transmit an EMSI_ICI
packet prior to receiving the EMSI_IRQ sequence from the Server.
All IEMSI sequences and EMSI sequences used during an IEMSI session
are terminated by a single . There are no exceptions to this.
STEP 2A, Server
+-+------------------------------------------------------------------+
:1: Tries=0, T2=60 seconds :
+-+------------------------------------------------------------------+
:2: Transmit EMSI_IRQ sequence :
+-+------------------------------------------------------------------+
:3: T1=20 seconds, increment Tries :
: : :
: : Tries>3? Discontinue IEMSI negotiation. :
+-+------------------------------------------------------------------+
:4: Wait for EMSI_ICI packet until any of the timers have expired. :
: : :
: : If T2 has expired, discontinue IEMSI negotiation. :
: +------------------------------------------------------------------+
: : If T1 has expired, go to step 2. :
: +------------------------------------------------------------------+
: : If EMSI_ICI seen, go to step 5. :
: +------------------------------------------------------------------+
: : Go to step 4. :
+-+------------------------------------------------------------------+
:5: Receive EMSI_ICI packet :
: +------------------------------------------------------------------+
: : Packet received OK? Transmit EMSI_ISI packet, and :
: : go to step 6. :
: +------------------------------------------------------------------+
: : Packet not received OK? Transmit EMSI_NAK and go to step :
: : 3. :
+-+------------------------------------------------------------------+
:6: Tries=0 :
+-+------------------------------------------------------------------+
:7: T1=20 seconds, increment Tries :
: : :
: : Tries>3? Discontinue IEMSI negotiation. :
+-+------------------------------------------------------------------+
:8: Wait for EMSI_ACK/EMSI_NAK until any of the timers have expired. :
: : :
: : If T2 has expired, discontinue IEMSI negotiation. :
: +------------------------------------------------------------------+
: : If T1 has expired or EMSI_NAK received, transmit EMSI_ISI packet :
: : again and go to step 7. :
: +------------------------------------------------------------------+
: : If EMSI_ACK received, go to step 9. :
: +------------------------------------------------------------------+
: : Go to step 8. :
+-+------------------------------------------------------------------+
:9: IEMSI session successfully established, exit. :
+-+------------------------------------------------------------------+
The Server must monitor its incoming data channel for 'normal' data,
ie. data not transmitted as IEMSI sequences, to detect if the user is
attempting to log-in without the use of IEMSI. The only basic
restriction this imposes on the Server is that user names and/or IDs
may not start with the character '*' since all EMSI/IEMSI sequences
start with this character.
All processing of the information in the EMSI_ICI packet must be done
after transmitting the EMSI_ISI packet and receiving two EMSI_ACK
sequences in return.
STEP 2B, Client
Note that this assumes that the Client has seen the EMSI_IRQ sequence
transmitted by the Server and that the negotiation is ready to take
place.
+-+------------------------------------------------------------------+
:1: Tries=0, T2=60 seconds :
+-+------------------------------------------------------------------+
:2: Transmit EMSI_ICI packet :
+-+------------------------------------------------------------------+
:3: T1=20 seconds, increment Tries :
+-+------------------------------------------------------------------+
:5: Tries>3 or T2 expired? Discontinue IEMSI negotiation. :
: +------------------------------------------------------------------+
: : If T1 has expired, go to step 2. :
: +------------------------------------------------------------------+
: : If EMSI_ISI seen, go to step 6. :
: +------------------------------------------------------------------+
: : Go to step 5. :
+-+------------------------------------------------------------------+
:6: Receive EMSI_ISI packet :
: +------------------------------------------------------------------+
: : Packet received OK? Transmit EMSI_ACK packet twice, :
: : and go to step 7. :
: +------------------------------------------------------------------+
: : Packet not received OK? Transmit EMSI_NAK and go to step:
: : 3. :
+-+------------------------------------------------------------------+
:7: IEMSI session successfully established, exit. :
+-+------------------------------------------------------------------+
All processing of the information in the EMSI_ISI packet must be done
after transmitting two EMSI_ACK sequences in return.
If either of the ICI or ISI packets are NAK'd three consecutive times,
the session negotiation attempt is terminated and the Client proceeds
as it would have done should the Server not have supported IEMSI.
IEMSI packet and sequence definitions
=====================================================================
=====================================================================
EMSI ACK **EMSI_ACK
---------------------------------------------------------------------
EMSI ACK is transmitted by either Client or Server as a positive
acknowledgement of the valid receipt of an IEMSI packet such as
EMSI_ISI and EMSI_ICI. During an IEMSI session, this sequence can,
however, be used as a positive acknowledgement for other IEMSI
packets. Redundant EMSI_ACK sequences should be ignored.
=====================================================================
EMSI NAK **EMSI_NAK
---------------------------------------------------------------------
EMSI NAK is transmitted by either Client or Server as a negative
acknowledgement of the valid receipt of an IEMSI packet such as
EMSI_ISI and EMSI_ICI. During an IEMSI session, this sequence can,
however, be used as a negative acknowledgement for other IEMSI
packets. Redundant EMSI_NAK sequences should be ignored.
=====================================================================
EMSI IRQ **EMSI_IRQ
---------------------------------------------------------------------
Similar to EMSI_REQ which is used by mailer software to negotiate a
mail session. IRQ identifies the Server as being capable of
negotiating an IEMSI session. When the Client detects an IRQ sequence
in its inbound data stream, it attempts to negotiate an IEMSI
session.
=====================================================================
EMSI IIR **EMSI_IIR
---------------------------------------------------------------------
The IIR (Interactive Interrupt Request) sequence is used by either
Client or Server to abort the current negotiation. This could be
during the initial IEMSI handshake or during other interactions
between the Client and the Server.
=====================================================================
EMSI ICI **EMSI_ICI
---------------------------------------------------------------------
The ICI packet is used by the Client to transmit its configuration
and Server-related information to the Server. It contains Server
parameters, Client options, and Client capabilities.
=====================================================================
EMSI ISI **EMSI_ISI
---------------------------------------------------------------------
The ISI packet is used by the Server to transmit its configuration
and Client-related information to the Client. It contains Server data
and capabilities.
=====================================================================
EMSI ISM **EMSI_ISM
---------------------------------------------------------------------
The ISM packet is used to transfer ASCII images from the Server to
the Client. These images can then be recalled by the Client when
the Server needs to display a previously displayed image. This will
be further described in future revisions of this document.
=====================================================================
EMSI CHT **EMSI_CHT
---------------------------------------------------------------------
The CHT sequence is used by the Server to instruct the Client
software to enter its full-screen conversation mode function (CHAT).
Whether or not the Client software supports this is indicated in the
ICI packet.
If the Server transmits this sequence to the Client, it must wait for
an EMSI_ACK prior to engaging its conversation mode. If no EMSI_ACK
sequence is received with ten seconds, it is safe to assume that the
Client does not support EMSI_CHT. If, however, an EMSI_NAK sequence
is received from the Client, the Server must re-transmit the
EMSI_CHT sequence. Once the on-line conversation function has been
sucessfully activated, the Server must not echo any received
characters back to the Client.
=====================================================================
EMSI TCH **EMSI_TCH
---------------------------------------------------------------------
The TCH sequence is used by the Server to instruct the Client
software to terminate its full-screen conversation mode function
(CHAT).
If the Server transmits this sequence to the Client, it must wait for
an EMSI_ACK prior to leaving its conversation mode. If no EMSI_ACK
sequence is received with ten seconds, a second EMSI_TCH sequence
should be issued before the Server resumes operation. If, however, an
EMSI_NAK sequence is received from the Client, the Server must
re-transmit the EMSI_TCH sequence.
The EMSI_ICI packet
=====================================================================
The following pseudo structure shows the layout of the EMSI_ICI
packet. Note that the information in the EMSI_ICI packet may not
exceed 2,048 bytes.
EMSI_ICI
name,
alias,
location,
data#,
voice#,
password,
birthdate,
crtdef,
protocols,
capabilities,
requests,
software,
xlattabl: ASCII1;
end;
EMSI_ICI field definitions
---------------------------------------------------------------------
=====================================================================
Name and Alias (or Handle)
---------------------------------------------------------------------
The name and possible alias (AKA) of the user (Client). This must be
treated case insensitively by the Server.
=====================================================================
Location
---------------------------------------------------------------------
The geographical location of the user, ie. Stockholm, Sweden.
=====================================================================
data# and voice#
---------------------------------------------------------------------
Unformatted data and voice telephone numbers of the user. Unformatted
is defined as the full telephone number, including country and local
area code. Eg. 46-8-90510 is a telephone number in Stockholm, Sweden.
=====================================================================
Password
---------------------------------------------------------------------
The password for the user. This must be treated case insensitively by
the Server.
=====================================================================
Birthdate
---------------------------------------------------------------------
Hexadecimal string representing a long integer containing the birth-
date of the user in UNIX notation (number of seconds since midnight,
Jan 1 1970). This must be treated case insensitively by the Server.
=====================================================================
CrtDef
---------------------------------------------------------------------
Consisting of four sub-fields separated by commas, this field
contains from left to right: The requested terminal emulation
protocol, the number of rows of the user's CRT, the number of columns
of the user's CRT, and the number of ASCII NUL (00H) characters the
user's software requires to be transmitted between each line of text.
The following terminal emulation protocols are defined:
AVT0 AVATAR/0+. Used in conjunction with ANSI. If AVT0 is
specified by the Client, support for ANSI X3.64 emulation
should be assumed to be present.
ANSI ANSI X3.64
VT52 DEC VT52
VT100 DEC VT100
TTY No terminal emulation, also referred to as RAW mode.
=====================================================================
Protocols
---------------------------------------------------------------------
The file transfer protocol option specifies the preferred method of
transferring files between the Client and the Server in either
direction. The Client presents all transfer protocols it is capable
of supporting and the Server chooses the most appropriate protocol.
DZA* DirectZAP (Zmodem variant)
ZAP ZedZap (Zmodem variant)
ZMO Zmodem w/1,024 byte data packets
SLK SEAlink
KER Kermit
(*) DirectZAP is a variant of ZedZap. The difference is that the
transmitter only escapes CAN (18H). It is not recommended to use the
DirectZAP protocol when the Client and the Server are connected via a
packet switching network, or via another layer sensitive to control
characters such as XON and XOFF.
=====================================================================
Capabilities
---------------------------------------------------------------------
The capabilities of the user's software. If more than one capability
is listed, each capability is separated by a comma.
The following capability codes are defined:
CHT Can do full-screen on-line conversation (CHAT).
MNU Can do ASCII image download (see ISM packet).
TAB Can handle TAB (ASCII 09H) characters.
ASCII8 Can handle 8-bit IBM PC ASCII characters.
=====================================================================
Requests
---------------------------------------------------------------------
The requests field specifies what the user wishes to do once the
initial IEMSI negotiation has been successfully completed. If more
than one capability is listed, each capability is separated by a
comma.
The following request codes are defined:
NEWS Show bulletins, announcements, etc.
MAIL Check for new mail.
FILE Check for new files.
HOT Hot-Keys.
CLR Screen clearing.
HUSH Do not disturb.
MORE Page pausing, often referred to as "More".
FSED* Full-screen editor.
XPRS .
(*) Note that this allows the Client to request use of a full-screen
editor without requiring that it also supports a full-screen terminal
emulation protocol.
=====================================================================
Software
---------------------------------------------------------------------
The name, version number, and optionally the serial number of the
user's software. Eg. {FrontDoor,2.00,AE000001}.
=====================================================================
XlatTabl
---------------------------------------------------------------------
Used for character translation between the Server and the Client.
This field has not been completely defined yet and should always be
transmitted as {} (empty).
The EMSI_ISI packet
=====================================================================
The following pseudo structure shows the layout of the EMSI_ISI
packet. Note that the information in the EMSI_ISI packet may not
exceed 2,048 bytes.
EMSI_ISI
id,
name,
location,
operator,
localtime,
notice,
wait,
capabilities: ASCII1;
end;
EMSI_ISI field definitions
---------------------------------------------------------------------
=====================================================================
ID
---------------------------------------------------------------------
The name, version number, and optionally the serial number of the
Server software. Eg. {RemoteAccess,1.10/b5,CS000001}.
=====================================================================
Name
---------------------------------------------------------------------
The name of the Server system. Eg. {Advanced Engineering S.A.R.L.}.
=====================================================================
Location
---------------------------------------------------------------------
The geographical location of the user, ie. Stockholm, Sweden.
=====================================================================
Operator
---------------------------------------------------------------------
The name of the primary operator of the Server software. Eg. {Joaquim
H. Homrighausen}.
=====================================================================
Localtime
---------------------------------------------------------------------
Hexadecimal string representing a long integer containing the current
time of the Server in UNIX notation (number of seconds since midnight,
Jan 1 1970). This must be treated case insensitively by the Client.
=====================================================================
Notice
---------------------------------------------------------------------
May contain copyright notices, system information, etc. This field
may optionally be displayed by the Client.
=====================================================================
Wait
---------------------------------------------------------------------
A single character used by the Server to indicate that the user
has to press the key to resume operation. This is used in
conjunction with ASCII Image Downloads (see ISM packet).
=====================================================================
Capabilities
---------------------------------------------------------------------
The capabilities of the Server software. No Server software
capabilities have currently been defined.
Credits and other notes
=====================================================================
The original EMSI specifications were designed by Chris Irwin and
Joaquim H. Homrighausen. The original IEMSI specifications were
designed by Joaquim H. Homrighausen and Andrew Milner.
--- end of "emsi.doc" ---

