NU-IMAT (Intelligent Modem Using Hayes AT Commands) The IMAT equate found in NUBYE utilizes code within NUBYE which adapts all modems (300, 1200 and 2400) using standard Hayes AT command protocol and response codes to NUBYE. This includes, but is not limited to: Hayes Smartmodem (300, 1200 and 2400) Racal-Vadic Maxwell 1200V and 2400V U.S. Robotics (Password 300/1200 and Courier 2400) Promodem, Anchor and etc... This routine: ------------ 1) Initializes the modem (and does echo verification, if ECHO is YES) 2) Detects phone ring 3) Answers the phone 4) Detects the speed of the remote caller 5) Sets the local computer port to that speed 6) Greets the user without him pounding on the RET key 7) Prevents modem from answering phone if local computer is sick 8) Deinitializes the modem when exiting NUBYE via CTL-C IMAT code found/used in NUBYE: ---------------------------- IMRING Main driver and dispatcher IMINIT Modem initialization routine IMQUIT Modem deinitialization routine IMHANG Uses +++ATH to hangup the phone (if NODTR is YES) Installation instructions: ------------------------- 1) Note: For detailed instructions concerning the many NUBYE equates, read the NUBYE.DOC. Generally, set the following equates as shown: IMODEM EQU YES ; For all intelligent modems IMAT EQU YES ; Invokes this routine HSnnnn EQU YES ; Set only one for your max modem speed ; (nnnn = 300, 1200 or 2400) DOATZ EQU NO ; Try NO first (will speed up system considerably - ; but you must experiment) ECHO EQU YES ; For Hayes, ProModem or Racal Vadic Maxwell and USR Courier modems (NO for all others) ANCHOR EQU YES ; For the Mark-XII (NO for others) NOATA EQU YES ; For older USR modems (NO for others) NODTR EQU YES ; For Anchor Mark-XII or some Ozzie-1's (NO otherwise) OFFHK EQU YES ; YES will issue ATH1 (busy out your phone), NO will ; issue ATS0=0 (allows phone to ring but not answer) ; when you are using your computer locally. SHORTB EQU NO ; Yes if your modem has a short command storage buffer ; like the MultiModem. NUBYE will send two short ; command strings instead of one long string (Note: ; setting this YES will take longer for NUBYE to ; initialize the modem). PRGRSS EQU YES ; Leave this YES until you are certain that everything ; is operating properly -- this will display modem ; result codes, command strings and other useful ; messages during debugging. 2) Locate your computer specific insert within the NUBY-INS.LBR. Using your favorite editor/word processor, search for "++++ Insert your I/O port insert here ++++". At this point, you will insert your entire computer specific file into NUBYE. If you are using an insert from some other source than the NUBY- INS.LBR, verify that the MDINIT routine does *NOT* have the instruction: CALL SETnnnn (nnnn = 300, 1200 or 2400) Delete this, if found. Also, verify that MDINIT drops DTR for about 2 seconds, raises DTR, then has the following code: IF IMODEM CALL IMINIT ENDIF ; RET 3) Your computer-to-modem interface cable should be wired so that: - Carrier status from the modem is monitored from pin 8 - Your computer controls DTR to the modem on pin 20 Note: The USR S-100 does not require a wired interface -- install B5USR-n.INS as your computer specific insert. Hardware (modem) installation: ----------------------------- Anchor Mark XII The Mark XII will not support DTR. NUBYE will use the +++ATH sequence to hang up the phone. This sequence is repeated as long as a carrier is present. Older Mark XII firmware has a problem recognizing the +++ escape sequence if the caller is at 300 bps. Use your MDM7 or MEX program in terminal mode and issue ATI1 command. Jim Warner from Anchor Automation called me and said your checksum should be 129, 158, 221 or 222. If not, you need updated firmware. You may also notice that the callers with the new 2400 bps modems may not succeed in using your system due to the tighter frequency tolerences being used. The Anchor 212A frequency control is marginal. HAYES 1200 - switches should be set as follows: UP - 1, 2, 4, 6, 7 DOWN- 3, 5, 8 HAYES 2400 - no switches so you must use a program like MDM740, IMP, MEX, etc and set the software options to default as follows: AT&F&W c/r (sets non-volatile memory to factory specs) AT&C1&D2&W c/r (when an ATZ is sent, the &W writes this command string to non-volatile memory, so the modem initializes properly) Mercury - See the file in MERCURY.DOC for a detailed explanation about configuring Mercury modems for NUBYE. ProModem 1200 - switches should be set as follows: ON - 1, 2, 3, 7, 9 OFF - 4, 5, 6, 8, 10 Note: These switch settings should work with NUBYE, MDM7 and IMP. RACAL-VADIC MAXWELL 1200V AND 2400V Works out of the box, no preinstallation required. USR 300/1200 Password, S-100 and 212A. Try assembling NUBYE with NOATA EQU NO. If your modem will not answer the phone when ATA is issued the set NOATA EQU YES. The only problem with this is if the computer is sick, your modem will still answer the phone. You can call USR and get a RMA number and have your modem firmware updated. Password Set all 4 switches up (off). S-100 Install B5USR-n.INS 212A Auto-Dial Set switch 2 down (off), 1,3,4 up (on). USR Courier 2400 - switches should be set as follows: ON 2, 3, 5, 8, 9 OFF 1, 4, 6, 7, 10 Result codes expected: --------------------- *(for any modem - 300, 1200 or 2400 baud) 0 OK - dumped in the bit bucket by IMRING 1 CONNECT - if HS300 or HS1200, calls SET300 - for HS2400 checks for 10 or 11 first 2 RING - causes IMRING to answer the phone 3 NO CARRIER - IMRING resets the modem and waits for next ring. Most modems wait 20-25 seconds for a carrier during which time you cannot do anything but wait for a result code. 4 ERROR - modem could not execute previous command(s). IMAT (if PRGRSS is YES) informs the sysop of a modem error and trys again. You likely have a problem with your modem cable or computer insert if you see this message. *(for 1200 and 2400 baud modems) 5 CONNECT 1200 - IMRING calls SET1200 *(for 2400 baud modems) 6 CONNECT 2400 - IMRING calls SET2400 (used by some clones) 9 CONNECT 2400 - IMRING calls SET2400 (used by some clones) 10 CONNECT 2400 - IMRING calls SET2400 (standard "Hayes" code)