Modem Modifier  v2.01  by DMP Systems
------------------------------------
Modem Modifier v2.01 is a shareware program. It lets you change the
modem parameters for Newton NOS 2.0 . For 1.x Newtons, use Modem
Modifier v1.12.

I gotta to tell you: 
--------------------
Modem Modifier relies on the documented format of a modem setup as
defined in the Newton Developer Technical Support Sample Code for
making a modem setup.   It's really a simple format. This
documentation is based on the information supplied in the sample code
and other sources. It may not be complete and is subject to change.
I've also found where the internal modem setups are stored and allow
you to copy them. The location of them may change in future Newton
OS's.


Installing Modem Modifier
-------------------------
First backup your Newton. It's a good idea. When was the last time
you did it ?


How To Use Modem Modifier
-------------------------
Install one of the Modem Setup Packages that came with Apples Modem
Enabler or a third party Modem Setup or the one I have included. If
the setup is not specifially for 2.0 it will be converted to a 2.0
setup when you open Prefs->Modems. If you didn't install one, Modem
Modifier will alert you that it can't find one.

Launch Modem Modifier and wait a few seconds for it to set itself up,
read the modem entrys, display the splash screen . . . For some
strange reason, this seems to take longer than in 1.x.

Use Newton's scroll arrows to move up / down in the parameter list.
Use the overview (belly) button to quickly move to the top or bottom
of the list. Change parameters to what you want. The changes are
saved when you: show a different modem, press the "Save Now" button
or  quit the program.

At the top of the screen is the Modem Name. This is the current one
that you are changing. At the bottom of the screen are buttons to
move between the different installed modem setups.

At the top right screen corner are some new (from v1.x) buttons. The
"Print" button will put a text copy of the currently shown modem to
the Note Pad. From the Note Pad, you may print or email / fax it. The
"Copy" button will let you copy one of the internal modem setups from
ROM so that you may change it. When you Copy a setup, a new Modem
Pref entry is made. The number (9xxxxxxxxx) after the Name is a
unique number to keeps it's identity different than the internal
setups as Newton uses the Modem Name to determine which setup to use.
You may change the Name, but be sure to reselect it in Modem Prefs so
that Newton will not get lost and upset when you try to actually use
a modem. 


Smart Cr's Checkbox:  Normal configuration setup strings have a
carriage return (cr) at the end of them. But you can't see it on
Newton's screen. Checking "Smart Cr's" makes sure that there is one,
and only one, cr at the end of a modem configuration string. Uncheck
it if you want to decide if cr's are at the end of the strings. Most
of the time you should leave it on unless you have a real good reason
not to. Most modems need a cr at the end of a setup string.


New in MM 2.0
-------------

In Modem Modifier 1.x, you had to quit the app in order to test your
changed setup strings. In MM 2.0, you can now tryout your settings
without quiting by pressing the "Save Now" button or showing a
different setup.


Heap Usage:
-----------
Modem Mod needs about 20k of heap to start execution. While
executing, about 9 to 15k is used. About 1/4k is needed for each
modem setup you have loaded. When you quit Modem Modifier, no used
heap is left around. All used heap is released.  Hey, would you
expect anything less from the author of App Memory ?



S I M P L E   M O D E M   C O N F I G U R A T I O N
- - - - - -   - - - - -   - - - - - - - - - - - - -

First, when you insert your modem PCMCIA card into Newton, does
Newton present a message: "A communications Card has been inserted."
? If not, then the modem won't work. If Newton thinks it's a memory
card, then the modem won't work. If Newton does not recognize the
card, then the modem won't work.


Second, the biggest problem people have is Newton saying "No modem is
connected" when you try to use it. There are two times when this
happens. When Newton tries to talk to the modem to set it up and when
it's dialed out and the other modem connects.

The answer is quite simple. Newton wants the modem to not echo the
commands it sends to it (except for an OK) and wants a connection
message when the link is established.

To make your modem not echo commands sent to it, include the E0
command as the first characters in the setup string. If your modems
echos, then Newton will tell you that no modem is connected.

The correct connection message is in the format of "CONNECT xxxx"
where xxxx is going to be the speed (9600,14000,28000 ...) that the
modem is talking to the remote modem at. The modem parameter for this
varies for different modems. See your modem manual for the correct
parameter. If your modem does not return this form of a connect
message then Newton will time out or tell you that the connection was
not make. For many modems this will be a X or W type command. Be
carefull as some modems combine this command with the hardware
handshake command.


Another potential problem for modems is the initial setup string sent
to it my Newton when "Use Dial Options" is checked. If checked,
Newton will send: ATM1L2X4S7=055S8=002S6=003S0=000
Simple Steps:

1. Use the Copy button to make a copy of the Hayes Basic setup - or
use the Modem Setup I've included.
2. Add in the command to have your modem give CONNECT xxxx messages
to the "Config. String No EC", "Config. String EC Only", "Config.
String EC and Fallback" and "Config. String Direct Connect".
3. Uncheck "Use Dial Options".
4. Press "Save Now".
5. Try your modem.

Here is the captured text when I hooked Newton up to my Mac and asked
it to get my eWorld messages Comments are in '()':
(Newton:"Initializing Modem")
Newton-> AT
Newton-> AT&F
Newton-> AT
Newton-> ATE0S12=12

(if Newton does not get back an OK after this, then it says No Modem
is connected)

Me    -> OK<cr><lf>

(Newton now sends the "Dial Options")

Newton-> ATM1L2X4S7=055S8=002S6=003S0=000

(if Newton does not get back an OK after this, then it says "No Modem
is connected")

Me    -> OK<cr><lf>
Newton-> ATDT 2820253

( after 2 seconds: "Connecting")
Me    -> <cr><lf>

( if Newton does not get a CONNECT xxxx message, then after a while:
"No Modem is connected")
Me    -> CONNECT 9600<cr><lf>

Newton-> SprintNet - 9600

SprintNet stuff next

(After all done, Newton hangs up the line and resets the modem)
Newton-> +++ATH0

Me    -> OK<cr><lf>
Newton-> AT&F

Me    -> OK<cr><lf>


That's it. Try out your modem with the above steps and you should get
a connection. Below is an indepth explaination of all the parameters.





What does Newton expect of a Modem ?
-----------------------------------

For a PCMCIA card modem, Newton wants to see a 16450 or 16550 UART.
For PCMCIA and serial modems, Newton wants to have hardware flow
control. If hardware flow control is not available, some options (EC,
Speed Buffering) cannot be used and the "Direct Connect Only" setup
must be specified.


For Hardware Flow control of a serial modem, Newton need the
following signals wired:

RTS: Request To Send. The Modem looks at RTS to see if Newton wants
to send data.

CTS: Clear To Send.  Newton looks at RTS to see if it's OK to send
data.

DSR: Data Set Ready. The Modem sets DSR to tell Newton that it is
ready.

DTR: Data Terminal Ready: Newton sets DTR on to tell the Modem it
starts a session. However, this signal should be ignored by the
Modem.

DCD: Data Carrier Detect.  The Modem sets DCD when it is linked up
with the Modem at the other end of the line. This signal is optional
and is selected if "Use Hardware CD" is True.

Newton also wants no echo and non-verbose text response messages from
the Modem.


In general, Newton will use "Config. String No EC" unless "Direct
Connect Only" is specified. The "Config. String EC Only" and "Config.
String EC and Fallback"  may be used by an application if it desires.



FAX:
----

Newton only supports what's called "Class 1" FAX right now. Flow
control is needed so if you have "Direct Connect Only" set to True,
you need to setup software (XON/XOF) flow control. The "Config.
String No EC" is used for FAX setup.

Note: Current information says that buffering needs to be enabled for
FAX, but "Direct Connect Only" does not support speed buffering.
Therefore, your fax speed must match the connect speed.




M o d e m   S e t u p    P a r a m e t e r s :
----------------------------------------------

Modem Name:
-----------
Text. Enter anything here. This is used when a new modem pref.
package in installed to see if it's already there. It's the one shown
at the top of the screen. Note: The Name at the top of the screen
updates after you're done with the entry you're editing. If you
change the name, be sure to go back into prefs->modem and reselect
it. The modem setup used is tracked by name.

Version:
--------
Number. Same as Modem Name. May be used by modem enablers to install
over an older version.

Organization:
-------------
Text. Put what you want in here.

ID the Modem:
-------------
Should the modem be asked who it is ? Many modems can tell the host
computer (ATI4) the  manufacture and model number.  Leave False
unless realy needed. If true, enter a Modem ID String parameter.

Use Hardware CD:
----------------
CD is Carrier Detect. Used to determine if another modem is talking
to it. If you're using an external modem, be sure the cable has CD
connected to pin 7 at the Newton end.

Use Configuration String:
-------------------------
If True, send the modem the current configuration strings. Determined
by the connection type and the active configuration. Leave True
unless your Modem is correctly configured upon power up.

Use Dial Options:
-----------------
If true, after a configuration string is sent to the modem, the
current dialing configuration is sent to the modem.

The default dialing options (as defined in the Newton Programmer's
Guide) are: 
Speaker: On
Detect Dial Tone: set in user pref.
Detect Busy: On
Tone or Pulse: set in user pref.
Manual Dial: No
Speaker Volume: set in user pref.
Wait for Carrier time: 55 sec.
Wait before Dialing: 3 seconds - but only if Detect Dial Tone is
false
Command Delay: 1 second
Ring to Answer On: 2  - but only if the modem is answering the call. 

The default dial configuration string is: 
ATM1L2X4S7=055S8=002S6=003S0=000
Default definitions of this string:
M1     Speaker On until carrier detected.
L2     Speaker volume to medium level.
X4     Provides basic call progress support, dial tone and bus signal
detection as well as connection speed messages.
S7=055 Carrier Detect time out is 60 seconds.
S8=001 Comma (,) in dial string time is one second.
S6=003 Wait time for blind dialing (dial tone detection not needed)
to three seconds. Note:  X4 will override this parameter.
S0=000 Auto answer off.

Set "Use Dial Options" to true unles you modem does not support the
above setup string.



Hang Up at Disconnect:
----------------------
Should the modem hang up the line when it done talking to the other
modem ? Sure. Unless you need it to keep the line.

Supports Cellular:
------------------
Does this modem support a cellular phone connection ? Only special
ones do. If True, be sure to enter a cellular setup string.
Currently, no software uses this flag. If future software uses this
flag, then it will use the "Config Str Cellular" setup.

V2.01 note: This parameter is not used in Newton 2.0 OS. It is
ignored but won't cause an error.

Supports EC:
------------
EC is Error Correction. If True be sure to enter a EC Only (and maybe
"EC and Fallback") setup string.

Supports LCS:
-------------
LCS is Line Current Sense. It's used for determining if the user has
lifted the phone handset off hook when using Newton to  place a phone
call. Leave False unless otherwise. I have no idea how the modem
tells Newton that you lifted the handset.

Direct Connect Only:
--------------------
Usually this will be false. Use this only if the modem does not
support Hardware Flow Control, EC or Buffering. Most modems will not
need use of this setting.


Connect Speeds:
---------------
Check off the data speeds the modem (and the App your using) can
support. Currenty, this is not used by any program but is provided
for future use.

Config. Speed:
--------------
Select the speed at which Newton can talk to the modem for commands.
This should be higher than the actual data connection rate.  19200 is
a good default. The Newton Modem uses 9600.

Command Timeout:
----------------
Milli-seconds (1/1000 sec.) How long after sending the modem a
command and not receiving a reply is to considered an error.

Max Chars per Line:
-------------------
Number. How many characters at one time (not counting  "AT" and <cr>)
the modem takes when configuring it. If the command string is longer,
it is split into chunks of this length. Change from 40 only if the
modem cannot support at least 40.

Inter-Command Delay:
--------------------
Number. How many milli-seconds should Newton wait between sending
commands to the modem after it receives a reply from the last
command. Keep at about 35-40.

Modem ID String:
----------------
Text. Used if you have "ID the Modem" set to true. Enter the modem ID
string. Normally this is not used and blank or set to "unknown".

Config. String No EC:
---------------------
Text. The setup string for non error correcting mode.  You should
enter a setup for your modem here. Used for FAX also. Needs Speed
buffering and Flow Control.

Normal configuration for this would be:
E0      - no echo.
&C1     - Enable DCD to track the actual state of remote modem's
carrier.
S12=012 - Set the Escape Code Gaurd Time to 240 ms. Most modems
default to 1 second.
W2      - Display "Connect xxxxx" messages using DTE (modem-to-modem)
speed (Alt: Q0 and X1 or X4 and V1 ?).
&K3     - Enable RTS / CTS hardware local flow control. (Alt: \Q3\X0
and \&R0\D1 ?)
&Q6     - Buffered Mode. Selects automatic speed buffering. Local
flow control required when the modem and Newton speeds are not the
same. (Alt: \N0 ?)


If you don't have Hardware Flow Control, then:
 Change the &F3 command to &K4 - Software flow control using XON /
XOFF (DC3 / DC1) (Alt: \Q1\X0 ?).
 Add a &R1 - Assume RTS is always on (Alt; ?). (may not work for all
modems)
 Add a \D0 - Force CTS on. (may not work for all modems)




Config. String EC Only:
-----------------------
Text. The normal setup string for an EC  mode. Needs Speed buffering
and Flow Control.

Normal configuration for this would be:
E0      - no echo.
&C1     - Enable DCD to track the actual state of remote modem's
carrier.
S12=012 - Set the Escape Code Gaurd Time to 240 ms. Most modems
default to 1 second.
W2      - Display "Connect xxxxx" messages using DTE (modem-to-modem)
speed.  If W2 is not supported,  try  Q0 and X1 or X4 and V1.
&K3     - Enable RTS / CTS hardware local flow control. (Alt: \Q3\X0
and \&R0\D1 ?)
&Q5     - Select V.42 EC operation (Reliable Mode) (Alt: &M4 or \N6
?). Many Modems use S36 with this.
%C1     - Bilateral MNP-5 or V.42bis enabled.
\M1     - V.42 detection phase enabled.

In general, the &Q5,%C1 and \M1 are used to set up an Error
Correction mode. Your modem may  only need a &Q5 and a S36 (3 or 4)
Protocol Negotiation Fallback setting.



Config. String EC and Fallback:
-------------------------------
Text. Configure for EC and Fallback. Fallback means that the modem
can change to non EC if it can't establish an EC connection. Needs
Speed buffering and Flow Control.


Normal configuration for this would be:
E0      - no echo.
&C1     - Enable DCD to track the actual state of remote modem's
carrier.
S12=012 - Set the Escape Code Gaurd Time to 240 ms. Most modems
default to 1 second.
W2      - Display "Connect xxxxx" messages using DTE (modem-to-modem)
speed.  If W2 is not supported,  try  Q0 and X1 or X4 and V1.
&K3     - Enable RTS / CTS hardware local flow control. (Alt: \Q3\X0
and \&R0\D1 ?)
&Q5     - Select V.42 EC operation (Reliable Mode) (Alt: &Q9?). Many
Modems use S36 with this.
%C1     - Bilateral MNP-5 or V.42bis enabled.
\M1     - V.42 detection phase enabled.

In general, the &Q5,%C1 and \M1 are used to set up an Error
Correction mode. Your modem may  only need a &Q5 and a S36=007,
Protocol Negotiation Fallback setting.



Config. String Cellular:
------------------------
Text. The setup string for using a cellular connection. This is for a
"Data" connection only. There is no FAX equivalent. Some modems will
sense if they are plugged in to a handset.  You're pretty much on
your own here. Include parameters for MNP10 and power attenuation. A
default could be AT&F1, AT&F5. In other words, a normal
configuration. Some manufactures suggest  \N4 or \N5 in place of \N6
or \N7. Used if you have "Supports Cellular" set. Implies Speed
buffering. 

V2.01 note: This parameter is not used in Newton 2.0 OS. It is
ignored but won't cause an error.


Config. String Direct Connection:
---------------------------------
Text. The setup string if using Direct connection. Used if you have 
"Direct Connect Only" set. After connecting Newton will change the
speed it talks to the modem to the connect speed. No Speed buffering.

Normal configuration for this would be:
E0      - no echo.
&C1     - Enable DCD to track the actual state of remote modem's
carrier.
S12=012 - Set the Escape Code Gaurd Time to 240 ms. Most modems
default to 1 second.
W2      - Display "Connect xxxxx" messages using DTE (modem-to-modem)
speed.  If W2 is not 
&K0     - Disable Flow Control (Atl: \Q0\X0 ?).
&Q0     - No Data Buffering, Error Control or Compression protocals
are supported. 


Summing it all up:
------------------
So, confused ? Don't be. Just enter a setup string for No EC and set
False for EC/EC only, Cellular and Direct.  Start out with the "Hays
Compatible Setup" and alter the things you need to. Try it out. Look
in your modem manual. If the parameter is not there, leave it out
and/or use an alternate. Look at the modem setups in your Mac / PC
communication programs. They should give you a good starting place.



Please don't ask me about your modem set up. I don't know. ;-) But,
do post what works with your modem so other Newton users can use it.




Credits
-------
I would like to thank Jim Bailey (Software Consulting for Mobile
Computing) for his suggestions and comments and  Apple (thanks Jim
and Rob) for the Newton Developer Technical Support Sample Code and
other information.


Shareware
----------
This program is Shareware $10.00. If you use it to get your modem
working with Newton, please register. I could have included code to
'expire' a  changed Modem Setup after a certain number of days or
usages if Modem Modifier was unregistered (it's easy to do in NOS
2.0) , but did not.  On Compuserve, Modem Modifier is SWREG ID #4975.


Distribution:
------------
Modem Modifier  may be freely distributed on any non-profit media
and/or Information services (this includes disks, Compuserve,
AppleLink, AOL, eWorld etc) under the condition that the package and
documentation shall not be altered in any way, shape or form.
Commercial  distribution is prohibited.  Any company wishing to
include this in a shareware type disk or sell it shall need to
contact me and agree to my terms and conditions. 


The Legal Stuff:
---------------- 
DISCLAIMER No warranty, express or implied, is made with respect to
this software, including, without limitation, any implied warranties
of merchantability and fitness for any particular purpose. I do not
warrant that the function of the software will meet customers
requirements, or will operate in the manner desired by customer or
that the software shall be error free. I shall not, under any
circumstance, be liable to customer or third party for any special,
incidental, or consequential damages, including but not limited to
the loss of data or information of any kind, loss of profit, or
liability to third parties, however caused, whether by the act or
negligence, of use or inability to use or otherwise. It is recognized
that the equipment this software is used on contains memories or 
data or other things that may be valuable to the customer or a third
party. In no event shall I be liable to the customer or any third
party if any such data or memory or other things are lost or changed
or destroyed, regardless of the cause of any such loss or change or
destruction, directly or indirectly arising from customers use misuse
or inability to use the software either separately or in conjunction
with other equipment. 





Who owns this Software:
----------------------
If you use this program to make your modem work with Newton, it would
be real nice  of you to register !  After all, I've worked hard to
bring you a program that you needed.

The program in this package is licensed, not sold to you, when you
pay a Shareware fee of $10.00US. You have 30 days to evaluate this
program before you must decide to send the shareware fee or stop
using it. The program remains owned by DMP Systems. The program and
documentation are Copyright  1994,1995,1996 DMP Systems, all rights
reserved. You may use the program only on one Newton at a time.  No
copies of this software shall be made except for backup needs. If you
transfer ownership of this software, all copies of this software
shall be destroyed.  This software may not be disassembled , reverse
engineered or altered. This documentation is copyrighted by DMP
Systems and may not be reproduced or copied by any means including,
but not limited to photocopier, computer, transcribed, verbal, mental
telepathy, recording and playing backwards or any other way. The
Modem Modifier  program was developed using the Newton Toolkit, which
is Copyright  1992-1994 Apple Computer, Inc.  DMP Systems accepts no
responsibility or liability for the product or what it might do to
your Newton.  You use this program at your own risk!  Newton and NTK
are registered trademarks of Apple Computer, Inc. 


Release Notes:
v1.0  2/28/95  Initial version - released to selected people.
v1.1  3/01/95  Minor cleanup items.
v1.11 3/6/95   Now have  the Newton Developer Technical Support
Sample Code .  Made minor changes to docs. and one cosmetic change to
the program.
v1.12 3/12/95  Now have even more information for defining the
parameters. Doc changes for "Direct Connect Only" and additions to
others. Misc minor cosmetic changes to App.

v2.0 2/16/96 This is for Newton OS 2.0 only. While it may not crash a
1.x Newton, the loadable modem setups are stored in a different place
in the System Soup so they won't be seen.

v2.01 2/24/96 Minor cosmetic changes. Minor Doc changes (Cellular).
Minor internal change in the way ROM setups are copied.

Thanks for reading all the way to the end! 
Comments & Questions  (checks / cash / SWREG) to: 

David M. Pompea
DMP Systems
62 Brittany Circle
Rochester, NY 14618 USA

email: CIS: 74736,172 (preferred)
AOL: DPOMPEA 
eWorld: DPOMPEA (only checked every week or two)


If you want or need a custom modem enabler as a user installable
package, please contact me. I can make them. All you need to supply
me with are a few details about your modem.


Other Newton Programs by DMP Systems
------------------------------------

No Sleep - The best program to keep Newton from sleeping when powered
by the A/C Adapter. It doesn't patch or do funky stuff to Newton.  No
Sleep also lets you download  YOUR Startup and Shutdown sounds, Smart
Sleep times via power level. Note: Sound download only for Macs (at
this time). Shareware: $10 

App Memory - Lets you clean up memory from the heap that other
programs leave behind thus helping with low memory situations.
Shareware: $10 

Sysbeep - Lets Newton say "Uh Oh" or "What the Hell" when an alert
box is shown. It replaces the normal system beep sound. Freeware 

Ttime - The smallest digital clock for the Newton that stays on the
screen anywhere, on top of all other programs. Freeware 

Time & Temp. -  Speaks the time and temperature (temp. only on OMP &
Newton 100). Freeware 

Salad - Lets your Calendar display Julian dates and Week #'s.
Shareware: $5 

PW Dial - Lets you enter a Password with a key pad on your 100 / 110
(not for 120's). Makes touch tone  dial tones louder, TT dial pad,
theft alarm and more. Shareware: $10

NewtDb - a relational Data Base for Newton that can use any Dbase,
Foxbase, Filemaker or .dbf and text files.  Make your own screens
and indexed databases.  Shareware ($29.95) and commercial ($59.95)
versions. 


