Subj : Re: Renegade and IEMSI
To : Nick Andre
From : Ozz Nixon
Date : Mon Feb 18 2019 06:18 pm
On 2019-02-18 06:40:08 +0000, Nick Andre -> Ozz Nixon said:
> On 17 Feb 19 11:10:48, Ozz Nixon said the following to All:
>
> ON> A couple nights ago, I was testing my terminal program, went to the
Telnet
> ON> Guide, and worked my way through different BBS packages.
> ON>
> ON> However, when I got to the Renegade 3 listings, two of them send the
wrong
> ON> handshake string.
> ON>
> ON> It is supposed to be (based upon FTSC) **EMSI_REQ#### and I reply back
> ON> **EMSI_INQ####. Instead these two BBSes sent **EMSI_INQ#### ... is this a
B
> ON> or is the FTSC wrong?
>
> Good question. This is the code from Renegade Y2KA2 for EMSI.
>
>
> write('Attempting IEMSI negotiation ... ');
> EMSI_IRQ := '**EMSI_IRQ8E08'^M^L;
> com_flush_rx;
> SerialOut(EMSI_IRQ);
> if (pos('**EMSI_ICI', s) > 0) then
> begin
> delete(s, 1, pos('EMSI_ICI',s) - 1);
>
> ISI := '{Renegade,'+ver+'}{'+General.BBSName+'}{'+u.citystate+
> '}{'+General.SysOpName+'}{'+Hex(getpackdatetime, 8)+
> '}{Live free or die!}{}{Everything!}';
> ISI := 'EMSI_ISI'+Hex(length(ISI), 4) + ISI;
> ISI := ISI + Hex(UpdateCRC32($FFFFFFFF, ISI[1],
length(ISI)),
> 8);
> ISI := '**' + ISI + ^M;
> com_flush_rx;
> SerialOut(ISI);
Looks like it is setup correctly, but every EMSI sample I find from the 90's
flow like, client to BBS->
begin
{ Assumes connection has been made at this point }
Tries := 0;
Repeat
Write2Port(EMSI_INQ); <---- just like rg's code - so they both INQ and wait
for REQ
Delay(1000);
Inc(Tries);
Until (Get_EMSI_REQ = True) or (Tries = 5);
If Tries = 5 then
begin
Writeln('Host system failed to acknowledge the inquiry sequence.');
Hangup;
Halt;
end;
{ Used For debugging }
Writeln('Boss has acknowledged receipt of EMSI_INQ');
Send_EMSI_DAT;
Tries := 0;
Repeat
Inc(Tries);
Until (Get_EMSI_ACK = True) or (Tries = 5);
Now looking at the specs from JoHo:
http://ftsc.org/docs/fsc-0056.001
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 <CR> 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 <CR> : 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 <CR>. In step 3, the Calling system does not terminate
sequences with <CR> as it is explicitly transmitted after possible
protocol start characters. In step 4, the Calling system once again
terminate all sequences with a <CR>.
and FINALLY:
=====================================================================
EMSI Inquiry **EMSI_INQ<crc16><CR>
---------------------------------------------------------------------
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.
--- FMail-W32 2.0.1.4
* Origin: Modern Pascal, LLC. (1:275/362.0)