[comp.dcom.modems] Connecting a TrailBlazer to a Sun 3/280

dplatt@coherent.uucp (Dave Platt) (01/30/88)

The following is a message I mailed to telebit!mike last week concerning
my experiences in connecting a TrailBlazer Plus to our Sun file/news
server.  My experiences may prove useful to other people who are
attempting to establish similar connections.  Updates at the end...

			--- begin letter --
			
						1/22/88

I spent all of yesterday attempting to establish a viable Sun/Trailblazer
marriage.  At this point, I can report partial success (PEP connections
to uunet are stunningly effective), great frustration, and some specific
recommendations for simple enhancements to the TrailBlazer that would
greatly ease this sort of task.

Background: we have a Sun 3/280 system, which (like almost all Sun
systems) does not support CTS flow-control on its serial ports.
[May legions of stinging ants infest the jockey shorts of the engineers
and managers who promulgate this revolting design philosophy!].  Our
neighbors (sun, ames, ibuki, and uunet) run a mixed bag of modems:

-  ibuki is 1200-baud only
-  sun has a TrailBlazer configured with S92=0 [normal answering sequence]
   and a V.22bis-baud modem.
-  ames has a TrailBlazer configured with S92=1 [reverse answering
   sequence, with PEP tones after V.22/212 tones], a V.22bis (U.S. Rotobics)
   and a rotor full of 212s.
-  uunet has a rotor of TrailBlazers configured with S92=1.

The faster modems at sun and ames are frequently busy, and so we'd like
to fall back and use the slower ones when necessary.  Naturally, we want
the 'Blazer-to-'Blazer connections to use PEP even if the receiving modem
has S92=1.  I was able to achieve the latter by burying an S50=255
in the 'Blazer dialing sequences;  the modem resets to S50=0 when DTR
is dropped at the end of a connection.

Specific problems encountered so far:

1) We'd really prefer to leave our DTE-to-'Blazer connection set to 9600
   baud (can't use 19200 'cause Sun UUCP doesn't recognize it... grrr.)
   Unfortunately, we run into flow-control problems when the 'Blazer
   connects to a V.22bis or 212.  The Sun doesn't honor CTS flow control,
   and we cannot use XON/XOFF or ENQ/ACK flow control under UUCP (which
   is an 8-bit, transparent-link protocol).  The net result is that locking
   the DTE speed to 9600 baud causes UUCP conversations to fail.
   
   This is rather embarrassing... I had assumed that the 'Blazer would be
   capable of buffering up three full uucp packets, and wouldn't have
   to drop CTS.  The U.S. Robotics 2400e is quite capable of doing this,
   and we had successfully run uucp at 1200 and 2400 baud with the DTE
   link locked at 4800 baud.  I spoke with Bob Boynton (Telebit tech.
   support) yesterday afternoon, and he informed me that the 'Blazer
   deliberately limits its buffering to 30 bytes when in emulation
   mode.
   
** Recommendation #1: increase the amount of buffering done in emulation
   mode to at least 256 bytes.  Perhaps the amount of buffering done
   should depend on the S111 (async protocol support) setting: 256
   bytes for uucp, and at least 1024 for xmodem/ymodem and Kermit.
   This would greatly improve the 'Blazer's ability to arbitrate
   between a dumb, high-speed DTE link and a lower-speed remote modem.

2) Next, I tried unlocking the DTE link, and running it at the speed
   of the remote modem.  This leads to difficulties also, because the
   'Blazer requires more autobauding than the standard Hayes "AT"
   sequence.
   
   Our uucp is rather dumb, and doesn't support chat scripts or other
   intelligent/programmable sequences during modem initialization (e.g.
   HoneyDanBer uucp's modemcap file).  I was able to patch uucico, changing
   the standard uucico modem-initialization string ("ATQ1E0V0...") into
   a magic cookie that I thought would autobaud the 'Blazer [and believe
   me, patching a stripped uucico binary with adb is no fun!].  I tried a
   magic cookie of "AAAAAAAAAAAAAAT<cr>", which works at 9600 baud and at
   1200 baud but doesn't seem to work at 2400 baud.  I then tried a cookie
   consisting of a mix of "A" and 0xFF bytes, in the hope that the 0xFF
   bytes would look like "mark" signals (pauses between characters).
   This was partially successful;  the modified cookie works at 9600 and
   2400 baud, but not at 1200 baud.  Sigh.
   
** Recommendation #2: publish the content of an autobaud string that can
   be sent to the modem ->at any line speed, and with no pauses between
   characters<-, and will successfully autobaud the modem at any of the
   speeds that the 'Blazer supports.  If no such string exists, then either
   modify the autobauder to implement one, or publish the requirement
   for inter-character pauses in the documentation.

3) The next difficulty involves result codes.  When our uucp dials out at
   2400 baud, it looks at the result code returned from the modem to
   determine whether it should "roll back" the DTE connection to 1200
   baud;  this occurs if the remote modem is a 212, rather than a
   V22.bis.  There's a problem, though.  If we configure the 'Blazer
   with ATX1 (return extended result codes) so that it will return
   a speed-specific result code, then the 'Blazer also insists on
   sending a non-standard code 52 (RRING), which our uucp doesn't
   understand and declares to be an "UNKNOWN DIALER ERROR" that
   terminates the connection attempt.  If we configure with ATX0 (basic
   result codes only), then the 'Blazer returns a result code of 1 for
   both 1200- and 2400-baud connections, and our uucp incorrectly attempts
   to roll back to 1200 baud even if the remote modem is a V.22bis.
   
   This is another area in which the U.S. Robotics 2400 modem is distinctly
   friendlier than the 'Blazer.  It provides several ATX modes in which
   extended call-completion result codes are returned, while the "RINGING"
   code (11) is suppressed.

   At this point, we're running with ATX1, and accepting the fact that about
   50% of our 2400-baud connection attempts are being aborted due to an
   "UNKNOWN DIALER ERROR" when the 'Blazer reports the RRING code 52.
   
** Recomendation #3: implement an ATX4 (or some other number) mode in which
   codes 0-50 are enabled, and 52 is suppressed.  Or, implement additional
   partial-quiet modes that selectively suppress code 52.

Our current status is that 9600-baud PEP connections seem to work
perfectly; V.22bis connections work erratically, depending on whether
the modem sends a code-52 response or not;  212 connections work properly,
although we actually issue the dialing sequence at 2400 baud and then
roll back to 1200 when the modem connects, because I haven't been able
to find a magic cookie that will autobaud the 'Blazer at both 1200
and 2400 baud.

At this point, any one of three enhancements would enable us to run
reliably at all three speeds:

-  If we could use CTS flow-control, we could lock the DTE speed to 9600
   baud and not lose data.  We could use ATX0 (basic result codes) without
   problems, because our uucp doesn't attempt rollback when connections
   are dialed at 9600 baud.

-  If the 'Blazer was capable of buffering 3 uucp packets in V.22bis/212
   emulation modes without dropping CTS, then we could lock DTE to 9600
   and not lose data.

-  If the 'Blazer was capable of returning an extended result code when
   a connection was established, but could be prevented from politely
   sending code 52 (RRING) during a call, then we could dial both
   V.22bis and 212 calls at 2400 baud, and fall back to 1200 baud in
   the latter case.

Mike... is there any chance that either a larger emulation-mode buffer,
or an improved extended-result-code mode could be implemented, kluged,
or patched into our modem?  If necessary I'd be glad to drive our modem
down to your shop for a PROM replacement.

At this point, I'm considering reinstalling our U.S. Robotics 2400e modem
on a second serial port, and using it for all of our V.22bis and 212
calls... it seems to be somewhat better suited to medium-speed use at
this time.  Doing so would require that I move a hardwired 9600-baud
link to our neighbor "aimt" to another machine;  this would be a major
pain in the butt.

Summary: the 'Blazer is a very impressive product, with a price that's
hard to beat (at the USENET discount rate, at least).  It still has a few
rough edges that make it a trifle difficult to adapt to dumb hardware and
software (e.g. Sun serial ports and obsolete uucp code).

[Late flash... Chuq just called to inform me that hardware flow control
will be implemented in SunOS 4.0.  This would resolve most of our
problems, if it actually works... there's some reason to believe that
Sun's new ALM (an 8-port serial expander) was designed without
CTS support in hardware... in which case the operating-system change will
do no good whatsoever for ALM ports.]

Thanks for reading and considering this.

		--- end of letter ---

Mike responded to my letter by sending me a small patch to Sun's uucico
that eliminates the 4800-baud speed table entry and replaces it with
a 19200-baud entry.  I haven't tried this yet, but will probably do
so next week;  this should pep up our netnews connections to uunet and
ames by 10-20%.  Mike has not yet responded to my questions about
changes to the emulation-mode buffering scheme or the result-code
selections.

I haven't reinstalled our U.S. Robotics 2400e for use at 1200 and
2400 baud;  I'll probably do so once Sun deigns to ship us SunOS 3.5
so that we can install our ALM, which will have plenty of spare ports.

All in all, I'm very glad that we decided to spring for a 'Blazer.
The frustrations s I've experienced in the Sun/'Blazer marriage
aren't enough to detract significantly from the wonder of seeing a
cross-country uucp connection delivering news at 9600 baud with
no pauses!  Our uunet connection time has been cut down from over
two hours per night (via Tymnet) to an average of about 20 minutes;
even given the higher $/hour rate for the uunet 800 number, the
switchover will probably save us almost 50% in our uunet hourly charges.
The modem should thus pay for itself within six months.

Nice work, Telebit!  And, with a a little bit of additional polishing,
you'll have an incredible gem indeed.


-- 

Dave Platt
  UUCP:	...!{ames,sun,uunet}!coherent!dplatt
  Internet: coherent!dplatt@ames.arpa, ...@sun.com, ...@uunet.uu.net

grr@cbmvax.UUCP (George Robbins) (01/31/88)

In article <218@coherent.uucp> dplatt@coherent.uucp (Dave Platt) writes:
> 
> I spent all of yesterday attempting to establish a viable Sun/Trailblazer
> marriage.  At this point, I can report partial success (PEP connections
> to uunet are stunningly effective), great frustration, and some specific
> recommendations for simple enhancements to the TrailBlazer that would
> greatly ease this sort of task.

I've been doing pretty much the same work with trying to get the telebit
modems to work nicely with ultrix.  Here are a few of my observations /
comments on your message.

1) The Telebit autobauding has got to be improved!  At high speeds, it
   seems like it needs to "think" about the "A" in the AT sequence and
   just blasting an "ATxxx" at it at 9600/19200 baud doesn't do any
   good.  Ultrix uucico sends a a series of pre-dial stuff with sleeps
   in between - +++ ATH ATZ +++ ATDT... - so I was able to patch the
   second, generally redundant, +++ to send a single "A", which worked
   pretty well.

2) The S50/S92 mode arbitration seems to be a catch 22.  If the remote
   site (like uunet) has S92 set to 1 to minimize problems with incoming
   calls from slow modems, the only way to establish a PEP session is
   for me to put an "ATS50=255" in the dialing sequence somewhere.
   Unforturnatly, Ultrix likes to translate = to some other character!
   So, I kludged the +++ stuff above to send +++ ATZ A ATS50=255 ATDT
   (the ATS50 has to be separate so that our USR modems don't toss
   the entire dial string), but now if I use the Telebit to call a
   dumb modem, it tries to get a PEP connection and reports no carrier!

3) Telebit could/should fix this in two ways - a) let S50=254 mean
   "set transmission mode appropriate to selected or auto-bauded
   interface data rate"  b) let S50=255 mean "try to establish PEP call,
   but fall back if dumb modem on the far end".  I don't see why both
   of these couldn't be done.  In fact it's kind of hard to believe
   S50=255 doesn't work as in (b), so I'll have to try it again.

4) It's fairly easy to fix the "uucp doesn't support 19200 baud" problem.
   If your uucp isn't stripped, it's a table of ints (longs) called
   spds set up as pairs of baud/stty codes, so pick on you don't like
   and change it to 19200/14 (decimal please).  If your uucp is stripped,
   the table is right near the beginng of the data section, so you
   can use $m to find where the data section begins, then just page
   thru with ?d until you see a sequnece of 50...75...110...200...300
   numbers.

5) Make sure your inteface a) supports 19200 baud hardware wise, and
   b) doesn't loose skillions of incoming character at high baud rates.
   For example, DEC DZ11's don't support 19200 baud.  There are lots
   of systems that will choke on 19200 incoming, especially under
   heavily loaded conditions or when some other bottleneck is invoked,
   perhaps during disk dma or some poorly implemented kernal sequence
   with interrupts disabled.

6) I was kind of suprised by the relative lack of user friendly/flex
   dialing stuff in the command set as compared to my 2-year old USR
   Courier 2400 modems.  Still, given a choice, I guess I'd rather have
   the ROM's full of high-speed / performance code than friendlies.

7) The setups that Rick Adams posted a while ago are hopelessy optimistic.
   Many versions of uucp available to the non-source licensed crowd dont't
   support any hayes auto-dial or if they do, don't include the provisions
   for putting dialer commands in the L-devices file. In thise case, the
   only recourse is to set up the line as a direct connection "DIR" and
   put the dialing commands in the send/expect script.  Many uucp's even
   lack the \r and \d escapes for sending return and delays, making life
   even more difficult.  If your uucp doesn't support \c, it's adb time.

9) Here is some info on how to setup uucp connections with a Trailblazer
   or other "Hayes" type modem when you are blessed with a "stupid uucp":
   It assumes that you have "modem control" on the port your modem is
   connected to and that the modem is set up to "Hangup" and hopefully
   "Reset Parameters" when DTR is dropped.  If you don't have this degree
   of modem control you're playing a dangerous (phone bill) game without
   built-in Hayes support to send the +++ ATH commands to terminate calls.

   The resulting L.sys file is going to look remakably ugly, but as long
   as it works, who cares.  You can embelish on the script, but it's
   best to stick to the simplest script that works reliably.  Trying to
   be fancy will just make it harder to get working and more fragile
   when it comes to different modems or funny connection behaviour on
   the far end.
    
   Here is a typical L-devices entry: (check your uucp documentation)

DIR ttyd0 0 19200 

   Here is a typical "stupid uucp" L.sys sequence:

fishvax Any,15 ttyd0 19200 ttyd0 <dialing stuff> <auto-baud/break stuff> <login>

   the autobaud/break stuff and login stuff are no different from the
   usual brain pain, so I'll just list a typical dialing sequence vertically:

"" A\c		expect nothing/anything, send "A" with no carriage return.

"" \c "" \c	expect nothing/anything, send nothing - a kludgy way to get a
		delay if your uucp doesn't support \d.  If it does, just put
		a \d in the above sequence.  Repeat as needed to generate
		enough delay.  If this doesn't work try 'foo-\c-""' which
		should mean expect foo, timeout many seconds, send nothing,
		expect nothing/anything.

"" ATS50=255DT19995551212^M\c

		Expect nothing/anything, send dial command / carriage return.
		Note that the ^M represents a control/M literally inserted in
		the file via ^v^m in via or thru clever use of "tr" if you
		can't get an editor to handle the task - use \r it if works!!!

CONNECT		Expect CONNECT, otherwise timeout and abort the call.

		At this point, your fall into your "normal" send/expect
		sequences needed for any auto-bauding on the remote system,
		followed by the send/expect sequences for the login/password.
		Use the hints for ^M and delay generation as needed to meet
		any perverse autobauding requirements.



-- 
George Robbins - now working for,	uucp: {uunet|ihnp4|rutgers}!cbmvax!grr
but no way officially representing	arpa: cbmvax!grr@uunet.uu.net
Commodore, Engineering Department	fone: 215-431-9255 (only by moonlite)

chris@mimsy.UUCP (Chris Torek) (01/31/88)

Incidentally, we worked around the `SunOS uucp is too stupid to
do chat scripts' problem on the one machine that (for various
reasons) cannot run 4.3BSD UUCP by marking the line `hardwired'
and setting the login sequence to start with

	A\dA\dA\dT\r\c OK ATS255=1X0\r\c OK ...

This is, of course, the wrong way to do it, and is painful to
use if you have more than one modem; it does, however, work.
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163)
Domain:	chris@mimsy.umd.edu	Path:	uunet!mimsy!chris

dplatt@coherent.uucp (Dave Platt) (02/02/88)

After some a couple of days of fiddling around, trying options, and
muttering arcane curses directed at both hardware and software, I've
managed to establish a successful and reliable marriage between our
new TrailBlazer Plus modem and our Sun 3/280 file-server.  We're now
using the 'Blazer for uucp dialout into other 'Blazer modems as well
as into V.22bis (2400-baud) and 212 (1200-baud) modems, and are also
answering calls from another 'Blazer at Ames.  I'm posting a short summary
of our configuration for the benefit of others who may be establishing
similar hookups.

First issue: we wanted to lock the modem-to-host communication link to
19200 baud in order to achieve maximum throughput.  Unfortunately,
Sun's obsolete uucp software does not recognize 19200 as a valid
speed.  telebit!mike forwarded to me the instructions for patching
uucico to establish a 19200-baud speed (the 4800-baud speed is
sacrificed to make this possible);  here's what must be done:

		------------------------------------------

 Date: Thu, 6 Aug 87 17:24:46 PDT
 From: gnu (John Gilmore)
 Message-Id: <8708070024.AA28084@hoptoad.uucp>
 To: sun!mclinger
 Subject: SunOS 3.3 uucp patch to support 19200 baud

 This patch to /usr/lib/uucp/uucico allows it to parse '19200' as a
 valid speed for dialing out (in L.sys and L-devices).  There is a table
 which consists of pairs of ints, e.g. 9600 and B9600 (13).  This patch
 replaces the entry for 4800, B4800 (12) with 19200, B19200 (14).  Be
 sure to check the permissions and ownerships of uucico and restore them
 after patching.

 To locate the 4800 baud entry, you can do:

 adb -w /usr/lib/uucp/uucico
 20000?L 0t4800

 This should display an address.  On hoptoad (68020 version) this address
 is 20A0C.  To display that table entry, you can do:

 ?DD

 it should say:
 xxxxxx:	4800	12

 to patch it,

 ?W 0t19200 0t14

 Don't forget the 0t's, which say these numbers are in decimal.
 You're done, type ^D and try it.

		------------------------------------------

The SunOS 3.3 patch that John suggests works fine on SunOS 3.4 as well.

With this patch in place, the 'Blazer's DTE can be locked to 19200
baud for both incoming and outgoing calls (S51=254, S66=1).  In order to
accept incoming calls at 19200 baud, it's necessary to add a new entry
to /etc/gettytab (I called it "T") and to modify the ttyd0 (or whichever)
entry in /etc/ttys to read "1T".  It's also necessary to set the Sun
kernel's configuration flags for the port to the "require hardware
carrier detect" position, and to configure the modem with S53=1
so that the hardware carrier-detect signal is sent to the Sun only
when carrier is actually received from the remote modem.

For security reasons, we decided to prevent the 'Blazer from answering
calls in other than PEP mode, so that "crackers" with 300/1200/2400-baud
modems could not attempt to log into our system.  This was done by
setting S50=255.

In order to ensure that the modem reset itself to a stable configuration
between calls, we set S52=2;  when the Sun drops DTR at the end of each
call, the modem hangs up (if it hasn't done so already) and resets itself
to the configuration stored in nonvolatile memory.

Because we've set the modem's default configuration to "PEP mode only",
we must arrange to re-enable automatic speed detection when we dial
a V.22bis or 212 modem.  We do this by burying the appropriate S50
command in the dialing sequence in the L.sys file;  it's an ugly hack,
but it does work.  For example, one such sequence looks like:

   ibuki Any,9 ACUHAYES 19200 5551212;S50=0;d "" \d\r\c in:-""-ogin: foobar

We've stored X0 in the modem's default configuration, so that the modem
does not send a "52" response (RRING) to the host when it dials a number
and hears the phone ring;  code 52 completely confuses uucp and causes
calls to be terminated with an UNKNOWN DIALER ERROR message.  Unfortunately,
setting X0 also causes "no dial tone" and "busy" to be reported to the
host as a "no carrier" situation, thus making it a bit more difficult to
determine why a call wasn't completed;  this is an annoyance rather than
a real problem.

The biggest difficulty I had in getting this configuration to work
properly was getting flow control to work properly.  Quite simply,
Sun hardware and software currently does not support hardware (CTS)
flow control;  software flow control (XON/XOFF or ENQ/ACK) is useless
during uucp connections.   This wasn't a problem when our 'Blazer called
another 'Blazer in PEP mode, because the modems' use of g-protocol
spoofing implements all of the necessary flow control at the uucp-packet
level.  We did have severe problems when our 'Blazer phoned a 1200- or
2400-baud modem;  our uucp would try to send 3 packets at 19200 baud,
the 'Blazer would drop CTS partway through the first packet, the Sun
wouldn't stop sending the packet, and the 'Blazer dropped the unwanted
bytes on the floor.  At a result, we never managed to send a single
intact packet, and the connection would time out.

After many hours of frustration, and a very helpful suggestion by
rick@seismo, I achieved a working interface by a very simple trick:
I turned flow control OFF at the modem (S58=0, S67=0, S68=0).  It turns
out that the TrailBlazer is quite capable of buffering up 3 uucp packets'
worth of data when operating in emulation mode... but it will only do so
if flow control is disabled.  If flow control is enabled, the 'Blazer
refuses to buffer up more than about 30 bytes of data before it drops
CTS, and once it has dropped CTS it apparently refuses to accept more
data.  This is one detail that isn't documented in the TrailBlazer manual;
it should be, I think.

For the last few days, our 'Blazer has been talking quite happily with
at least three other 'Blazers, a V.22bis, and several 212s.  It's
very impressive to watch news articles come flowing across the country
from uunet at >9600 baud;  we can now receive a standard compressed batch
of news in about one minute.  With today's uunet rates, I believe that
the TrailBlazer will pay for itself within six months;  it's cutting our
per-day newsfeed cost from uunet by almost 50%.

This is one amazing piece of hardware/firmware;  the folks at Telebit
are to be commended for their design and implementation.  There are
still a couple of rough spots in the interface (easier autobauding,
and an X mode that would enable extended result codes but suppress
RRING would be useful), but all in all it's really a fantastic piece
of work.  Thanks, y'all at Telebit!




-- 

Dave Platt
  UUCP:	...!{ames,sun,uunet}!coherent!dplatt
  Internet: coherent!dplatt@ames.arpa, ...@sun.com, ...@uunet.uu.net

grr@cbmvax.UUCP (George Robbins) (02/02/88)

In article <272@coherent.uucp> dplatt@coherent.uucp (Dave Platt) writes:
> 
> Because we've set the modem's default configuration to "PEP mode only",
> we must arrange to re-enable automatic speed detection when we dial
> a V.22bis or 212 modem.  We do this by burying the appropriate S50
> command in the dialing sequence in the L.sys file;  it's an ugly hack,
> but it does work.  For example, one such sequence looks like:
> 
>    ibuki Any,9 ACUHAYES 19200 5551212;S50=0;d "" \d\r\c in:-""-ogin: foobar

Does this really work?  I tried using the semicolon after the number and
thought it dialed, answered and stayed the command mode, in other words
it was too late...

What worked for me was to user the L-dialcodes to hide the dirty stuff.
In my L.sys file have have ACU 19200 PEP5551212 .... and in the dialcodes
file (this is really gross)  PEP ^H^HS50=255S53=0DT

Note those ^H's are real live backspaces which are used to "erase" the
DT part of the ATDT the dialer code sends to the modem.  Works good
and keeps most of the scum out of the L.sys file.

WARNING: Ultrix UUCP translates ='s in the "phone" number to commas,
apparently as an attempt to provide a dialer independent "pause"
capability.  Easily patched, but kind of an obstacle for the innocent.

I've recently gotten Ultrix "shared modem" dial-in/out support to work
with the Trailblazer, on a DMF-32 no less!  The trick is to have the
default configuration have S53=2 so that the modem doesn't assert DSR
in command mode, which would make getty think that there is a call in
progress and refuse to give up the line.  The various +++ATHATZ stuff
the dialer code does is dialed "blind", since the interface is
hard-wired to ignore incoming data without carrier detect.  However in
the middle of the dialing sequence, the S53=0 switches to carrier and
DSR on so the dialer code can see the "CONNECT".

The remaining problem is that the modem doesn't seem real eager to
re-autobaud once it's decided on the transmission rate.  Dropping DTR
seems to make it more receptive, however when the modem is passed
from the "dial-in" mode in getty to "dial-out" mode in uucp, carrier
doesn't seem to get dropped.  Maybe I should try the "fixed interface
speed", but I thought standard hayes type autobauding seemed more
reasonable.  Maybe I'll try a biggie object patch to drop/raise DTR.

One might wonder why I'm messing with the built in "hayes" dialer code
in Ultrix instead of the "hayesq" or generic dialer support.  I guess
it's just a matter of building on what works...  I've tried hacking the
generic dialer support a couple of times and can't seem to get it to
do the same thing on two successive calls.  8-( 

BTW, anybody have any ideas on what's a good cheap interface to support
the Trailblazer on a Vax?  The DMF32 has a little baby FIFO that suggests
I don't want to share an interface with incoming 19200 baud lines with
users typing or laser printers with X-ON/X-OFF flow control.  I just
got a DHU11 to replace the old DZ clone for general dialup support, but
the defectoid thing has a screwed up architecture that limits output
data rate to 9600 bps.  I wonder if there's any legit way to enable the
"hardware" X-on/X-off support on the DMF32?

-- 
George Robbins - now working for,	uucp: {uunet|ihnp4|rutgers}!cbmvax!grr
but no way officially representing	arpa: cbmvax!grr@uunet.uu.net
Commodore, Engineering Department	fone: 215-431-9255 (only by moonlite)

dplatt@coherent.uucp (Dave Platt) (02/04/88)

In article <3238@cbmvax.UUCP> grr@cbmvax.UUCP (George Robbins) writes:
> 
> 2) The S50/S92 mode arbitration seems to be a catch 22.  If the remote
>    site (like uunet) has S92 set to 1 to minimize problems with incoming
>    calls from slow modems, the only way to establish a PEP session is
>    for me to put an "ATS50=255" in the dialing sequence somewhere.
>    Unforturnatly, Ultrix likes to translate = to some other character!
>    So, I kludged the +++ stuff above to send +++ ATZ A ATS50=255 ATDT
>    (the ATS50 has to be separate so that our USR modems don't toss
>    the entire dial string), but now if I use the Telebit to call a
>    dumb modem, it tries to get a PEP connection and reports no carrier!
> 
> 3) Telebit could/should fix this in two ways - a) let S50=254 mean
>    "set transmission mode appropriate to selected or auto-bauded
>    interface data rate"  b) let S50=255 mean "try to establish PEP call,
>    but fall back if dumb modem on the far end".  I don't see why both
>    of these couldn't be done.  In fact it's kind of hard to believe
>    S50=255 doesn't work as in (b), so I'll have to try it again.

I'm afraid that S50/S92 is, indeed, a Catch 22 situation, especially if
you cannot embed an S50=xxx command in your dialing string.  Putting
S50=255 in your modem-init string, as you appear to have done, will
certainly cause you problems when you call "dumb" modems, because the
'Blazer will ignore 212/V.22bis answer tones.  Ultrix's habit of
translating "=" to a "pause" is a big misfeature, and deserves to
be disabled.

I'm afraid that your suggestion in 3(b) may be impossible to implement.
There are three basic classes of modems that you may wish to call:

a) 'Blazers set with S92=0.
b) 'Blazers set with S92=1.
c)  Slower (103/212/V.22bis) modems.

If you're calling modems in classes (a) or (c), you can set S50=0 and
establish connections with no problem.  As you've pointed out, calling
a modem in class (b) is the problem... your 'Blazer must be set to ignore
the 212/V.22bis answer tone at the beginning of the sequence, and wait
until it hears the PEP answer-scream.

Unfortunately, it may not be possible for a single 'Blazer setting to
call modems in all three of these classes.  The real problem comes when
you dial a slower (non-PEP) modem.  If you wait long enough to see whether
the modem you've called is a 'Blazer with S92=1 (i.e. you ignore the first
20-30 seconds of 212/V.22bis/V.22 answer signal), then a real 212/V.22bis
modem will probably decide that it has been answering for long enough, and
will hang up the phone!  As I recall, 212/V.22bis modems tend to send only
about 20 seconds of answer signal before timing out... they typically
won't remain off-hook long enough for a 'Blazer to wait 30-40 seconds
for a PEP answer and then attempt to fall back.

With respect to your suggestion in (3a):  I'd agree that a "set connection
mode based on selected interface speed" mode could be useful, but I'd
rather see it assigned to a number other than S50=254;  I find S50=254
to be very useful as is.  Also, in order to make use of this mode in
practice, the TrailBlazer's autobauding capability would need to be made
much more reliable... I haven't yet found an autobaud sequence that can
works reliably at all necessary speeds (1200, 2400, 19200) when blasted
at the modem at full connection speed.

Rumor has it that Sun is considering porting HoneyDanBer uucp to their
systems... if this is true, then it will become much easier for us to
write successful-autobaud modem-init sequences.
-- 

Dave Platt
  UUCP:	...!{ames,sun,uunet}!coherent!dplatt
  Internet: coherent!dplatt@ames.arpa, ...@sun.com, ...@uunet.uu.net

ken@jose.UUCP (Ken MacLeod) (02/13/88)

  The following patch also works on 'uucico' and 'cu' on the
NCR Tower 32/600.  The 'uucico' patch was found at 0x13eb2 on my
system.  The 'cu' patch was found at 0x2160 for '4800' and 0x21b0
for '12'.  We also run our system locked at 19200.

In article <272@coherent.uucp>, dplatt@coherent.uucp (Dave Platt) writes:
< After some a couple of days of fiddling around, trying options, and
< muttering arcane curses directed at both hardware and software, I've
< managed to establish a successful and reliable marriage between our
< new TrailBlazer Plus modem and our Sun 3/280 file-server.  We're now
< using the 'Blazer for uucp dialout into other 'Blazer modems as well
< as into V.22bis (2400-baud) and 212 (1200-baud) modems, and are also
< answering calls from another 'Blazer at Ames.  I'm posting a short summary
< of our configuration for the benefit of others who may be establishing
< similar hookups.
< 
< First issue: we wanted to lock the modem-to-host communication link to
< 19200 baud in order to achieve maximum throughput.  Unfortunately,
< Sun's obsolete uucp software does not recognize 19200 as a valid
< speed.  telebit!mike forwarded to me the instructions for patching
< uucico to establish a 19200-baud speed (the 4800-baud speed is
< sacrificed to make this possible);  here's what must be done:
< 
< 		------------------------------------------
< 
<  Date: Thu, 6 Aug 87 17:24:46 PDT
<  From: gnu (John Gilmore)
<  Message-Id: <8708070024.AA28084@hoptoad.uucp>
<  To: sun!mclinger
<  Subject: SunOS 3.3 uucp patch to support 19200 baud
< 
<  This patch to /usr/lib/uucp/uucico allows it to parse '19200' as a
<  valid speed for dialing out (in L.sys and L-devices).  There is a table
<  which consists of pairs of ints, e.g. 9600 and B9600 (13).  This patch
<  replaces the entry for 4800, B4800 (12) with 19200, B19200 (14).  Be
<  sure to check the permissions and ownerships of uucico and restore them
<  after patching.
< 
<  To locate the 4800 baud entry, you can do:
< 
<  adb -w /usr/lib/uucp/uucico
<  20000?L 0t4800
< 
<  This should display an address.  On hoptoad (68020 version) this address
<  is 20A0C.  To display that table entry, you can do:
< 
<  ?DD
< 
<  it should say:
<  xxxxxx:	4800	12
< 
<  to patch it,
< 
<  ?W 0t19200 0t14
< 
<  Don't forget the 0t's, which say these numbers are in decimal.
<  You're done, type ^D and try it.
< 
< 		------------------------------------------
< 
< The SunOS 3.3 patch that John suggests works fine on SunOS 3.4 as well.
< 
-- 
Ken MacLeod                                    Price Savers Wholesale Warehouse
ut-sally!utah-cs!utah-gr!uplherc!sp7040!jose!ken           Salt Lake City, Utah
(801) 277-6966 (evening)                                  (day)  (801) 264-7224
            I don't let anyone share my views, there all mine.

mangler@cit-vax.Caltech.Edu (Don Speck) (02/15/88)

In article <3238@cbmvax.UUCP>, grr@cbmvax.UUCP (George Robbins) writes:
>    For example, DEC DZ11's don't support 19200 baud.

They do on 4.2bsd.  DEC doesn't document it because the rate is not
divided exactly (it's actually 19600 baud) but it's close enough for
many devices.  The 64-character silo provides enough buffering for
only 1/30 of a second, so any kernel printf will cause dropped
characters, but that's true of any serial interface for a vax.

The thing that makes it useless for high-speed devices like
Trailblazers is the lack of CTS flow control.

The Able DH/DM is one of the few Unibus serial interfaces that
provides CTS, but because it uses a DZ11-compatible distribution
panel (which doesn't have a wire for CTS) this is done in a very
kludgey way.  At the DH/DM and at the panel, you jumper RI and CTS
together.  This sacrifices the RI signal, but 4.2bsd doesn't do
anything with that anyway.  It's a pain to configure, but works
quite well, at least with our U-B terminal switch.

The 256-byte silo helps.  The Emulex CS21/H has a 256 byte silo
too, but the factory settings restrict it to 64 bytes for DEC
diagnostic compatibility, so check the switches.  The CS21/H
lacks CTS, so it will not fare much better than the DZ11.

Able DH/DM's can sometimes be bought cheap from VMS sites/dealers
that have acquired some by buying an old Unix vax.  I have 3.

Don Speck   speck@vlsi.caltech.edu  {amdahl,ames!elroy}!cit-vax!speck