Modem Command Strings

Nov 09, 2006 6 Replies

I wonder if anyone can help me understand what is going on in the following modem command strings? They are amongst the strings used to initialise a, now obsolete, Complemetary Technology Ltd OEM-MODEM-34 v34 modem and I am trying to work out what is going on so I can initialise my shiny new Multitech RJModems in the same way. The tricky strings are:



AT&F0S0=1S28=0S37=9E0%T21,18,0\r\0 ATS0=1S28=0E0&N6S32=120\r\0 AT%T21,2f,4\r\0



The codes I've cracked are: &F0 (Load Factory setttings) E0 (no echo) S0=1 (1 ring before autoanswer) S28=0 (V34 modulation disabled - whatever that is) S37=9 (Negotiation speed (9600))



The ones I'm not sure about are: S32=120 (From some places this is Xon character and is 120 (lower case x? not likely) but this is a Lucent modem and this could be Synthetic ring volume.) &N6 (no idea - never seen it anywhere) %T21,18,0 %T21,2f,4 (I think that %T21 is modifying a homologation factor - whatever that is)



There is another string %T19,0,19 when the modem in for the US which I believe sets the country code.



I used these commands with the RJModem and it worked OK for a while and then dropped the connection but I'm not sure what could be causing that.


Why are you running with this setting? What are you connecting to?

I'm not rightly sure why it was set up this way either - I am trying to decipher someone else's code and there are settings there that I'm not at all sure about. The (only) comment in the code says that AT%T21,2f,4\r\0 is used to boost the TX level but I'm not sure why that was necessary either (or even correct).

I am connecting to a PC via a US Robotics external modem. Apparently in days of yore my device used to use an external US robotics modem instead of this internal CommTech one and perhaps it may be a legacy from then?

(This S37=9 could be *max* upstream speed setting, for a rockwell modem.)

For an USR modem I found this related statement: "S27=32: Disables V.32bis mode. This in combination with S32=120 forces the modem to connect at 9600 bps"

USR modem; sets connect speed at 9600baud (only)

Lucent modem; clear blacklist numbers (if any)

No idea what this register does;

Well, I meant - what kind of modem is on the other end?

USR's modems have historically had a lot of trouble negotiating with other vendors. (This is naturally opening the door for a flame war of massive proportions, but damn the torpedoes - full speed ahead. In the days when V.FC was just giving way to V.34, I used to run an all-Rockwell BBS and connect across the seas from Australia to Texas, to USR modems. I also used to sell modems, and tested a lot of different combinations. Believe me when I tell you I know about the USR horrors).

I could always tell which BBSs - even local ones - ran USR modems, because they would rarely negotiate properly with my Rockwell or even other AT&T-based devices; they frequently dropped the connection on me unless I limited my end to V.32bis.

Given that your modems have changed since the medieval days when this app was written, start by taking everything tricky and cunning out of the init string; try AT&F0S0=1 and work from there. (If necessary, add whatever settings are required for flow control).

Perhaps I'm not being clear. The end I'm using is a data logging device which uses the internal CommTech Lucent based modem (but was USR external in the olden days). This then dials up to a PC which uses an external USR modem.

I seemed to be negotiating properly because I can connect and get the two systems to transfer data for about 30 seconds before the line is dropped. Still not sure why that happens but I wouldn't rule out the application layer software.

I think that is the best way to go. Part of the battle here will be cracking how to write code using an oooold paradigm 80C188 compiler and download it via a mega oooold Noral emulator. I plan to completely redesign this product for the 21st century next year but until then, people want their modems.

Not Rockwell, but negotiation speed would match with your later suggestions.

Interesting...

Good, good - this is all becoming clearer.

OK. Not sure why that was a problem but there it is.

I think it ups the TX levels but I'm not sure about that.

So if my system expects a 9600 speed limit but I've not set the RJModem to that level then I would probably run at full pelt and overflow my receive buffer after a period of time and comms would likely fail (about

30 seconds in this case). This is definitely becoming clearer. Thanks.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required